1.页面总体使用线性布局(LinearLayout)
2.将Toolbar(顶部菜单栏)拖入design模式下的设计界面中
3.颜色选择器需要在build.gradle中手动的添加
compile 'com.android.support:palette-v7:28.0.0'
4.代码
(1)XML文件布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize" android:theme="?attr/actionBarTheme"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="TextView" /> </android.support.v7.widget.Toolbar> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" app:srcCompat="@mipmap/img1" /> </LinearLayout>
(2)java后台代码
package com.lucky.test12; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.graphics.Palette; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends AppCompatActivity { Toolbar toolbar; //天坑:Toolbar有两个版本,导包一定要正确 TextView textView1; ImageView imageView; //android res目录下存储的图片都是以int类型的数存储的 int pictureArray[]={R.mipmap.img1,R.mipmap.img2,R.mipmap.img3,R.mipmap.img4,R.mipmap.img5}; int i=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar=findViewById(R.id.toolbar); textView1=findViewById(R.id.textView); imageView=findViewById(R.id.imageView); //为图片设置点击事件,当图片被点击时,更换图片并更改toolbar的背景颜色 imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { i++; i=i%pictureArray.length; imageView.setImageResource(pictureArray[i]); //为imageview组件设置要显示的图片 Bitmap bitmap=BitmapFactory.decodeResource(getResources(),pictureArray[i]); Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { @Override public void onGenerated(@Nullable Palette palette) { Palette.Swatch swatch=palette.getVibrantSwatch(); if(swatch!=null){ toolbar.setBackgroundColor(swatch.getRgb()); textView1.setTextColor(swatch.getTitleTextColor()); } } }); } }); } }
5.效果图
源码:test12
说明:点击图片,会切换显示的图片,并改变toolbar的背景颜色