zoukankan      html  css  js  c++  java
  • 012 Android Palette颜色选择器的使用

    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的背景颜色

  • 相关阅读:
    设计模式 — 责任链模式
    BlockingQueue 阻塞队列(生产/消费者队列)
    DDD工作流持久化(十六)
    js中匿名函数和回调函数
    DDD模型领域WF到领域层(十五)
    DDD领域模型系统的工作流(十四)
    DDD领域模型数据访问权限之权限(十二)
    DDD领域模型数据访问之对象(十一)
    DDD领域模型数据访问权限之用户权限(十)
    DDD领域模型数据访问权限(九)
  • 原文地址:https://www.cnblogs.com/luckyplj/p/10473669.html
Copyright © 2011-2022 走看看