使用调色板Palette在背景图中取色
来源:互联网 发布:smartmontools linux 编辑:程序博客网 时间:2024/06/05 05:52
Palette是Android.support.v7.graphics包中定义的用于提取背景中的颜色的类,该类用final修饰,不可被继承。
在使用Palette前,需要在build.gradle中加入依赖:
dependencies{
compile ‘com.android.support:palette-v7:23.1.1’
}
Palette可提取的颜色按类型可分为以下几种:
Vibrant ——动感的Vibrant Dark ——动感的亮Vibrant Light ——动感的暗Muted ——柔和的Muted Dark ——柔和的亮Muted Light ——柔和的暗
用几张图放入项目
<RelativeLayout 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" tools:context="com.feng.buttonsheetdialogtest.Main3Activity"> <Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="bg1" android:layout_marginBottom="53dp" android:layout_alignParentBottom="true" android:layout_alignParentStart="true"/> <ImageView android:id="@+id/iv_show" android:layout_width="match_parent" android:layout_height="200dp" app:srcCompat="@drawable/bg" android:layout_alignParentTop="true" android:layout_alignParentStart="true"/> <TextView android:id="@+id/block" android:layout_height="20dp" android:layout_width="match_parent" android:layout_below="@+id/iv_show" android:text="分割线" android:background="#666" /> <View android:id="@+id/v1" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignParentStart="true" android:layout_below="@+id/block" /> <View android:id="@+id/v2" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignParentStart="true" android:layout_below="@+id/v1" /> <View android:id="@+id/v3" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignParentStart="true" android:layout_below="@+id/v2" /> <View android:id="@+id/v4" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignParentStart="true" android:layout_below="@+id/v3" /> <View android:id="@+id/v5" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignParentStart="true" android:layout_below="@+id/v4" /> <View android:id="@+id/v6" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignParentStart="true" android:layout_below="@+id/v5" /> <Button android:id="@+id/bt2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/bt1" android:layout_toEndOf="@+id/bt1" android:text="bg2"/> <Button android:id="@+id/bt3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/bt2" android:layout_toEndOf="@+id/bt2" android:text="bg3"/> <Button android:id="@+id/bt4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/bt3" android:layout_toEndOf="@+id/bt3" android:text="bg4"/></RelativeLayout>
package com.feng.buttonsheetdialogtest;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Color;import android.os.Build;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v7.graphics.Palette;import android.view.View;import android.view.Window;import android.widget.Button;import android.widget.ImageView;public class Main3Activity extends FragmentActivity { private Bitmap mBitmap; private View mV1; private View mV2; private View mV3; private View mV4,mV5,mV6; private ImageView mImageView; Button mButton,bt2,bt3,bt4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); initView(); } private void initView() { mV1 = findViewById(R.id.v1); mV2 = findViewById(R.id.v2); mV3 = findViewById(R.id.v3); mV4 = findViewById(R.id.v4); mV5 = findViewById(R.id.v5); mV6 = findViewById(R.id.v6); mButton=(Button)findViewById(R.id.bt1); bt2=(Button)findViewById(R.id.bt2); bt3=(Button)findViewById(R.id.bt3); bt4=(Button)findViewById(R.id.bt4); mImageView = (ImageView) findViewById(R.id.iv_show); mImageView.setScaleType(ImageView.ScaleType.FIT_XY); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mImageView.setImageResource(R.drawable.bg); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg); setBgColor(); mButton.setEnabled(false); } }); bt2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mImageView.setImageResource(R.drawable.bgg); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bgg); setBgColor(); bt2.setEnabled(false); } }); bt3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mImageView.setImageResource(R.drawable.bggg); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bggg); setBgColor(); bt3.setEnabled(false); } }); bt4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mImageView.setImageResource(R.drawable.bgggg); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bgggg); setBgColor(); bt4.setEnabled(false); } }); } private void setBgColor() { /*如果在主线程中,我们可以使用异步的方式:*/ Palette.generateAsync(mBitmap, new Palette.PaletteAsyncListener() { public void onGenerated(Palette palette) { //柔和的 mV1.setBackgroundColor(palette.getMutedColor(Color.BLACK));//设置默认颜色 //鲜艳的暗色 mV2.setBackgroundColor(palette.getDarkMutedColor(Color.BLACK)); //柔和的亮色 mV3.setBackgroundColor(palette.getLightMutedColor(Color.BLACK)); //鲜艳的 mV4.setBackgroundColor(palette.getVibrantColor(Color.BLACK)); //鲜艳的暗色 mV5.setBackgroundColor(palette.getDarkVibrantColor(Color.BLACK)); //鲜艳的亮色 mV6.setBackgroundColor(palette.getLightVibrantColor(Color.BLACK)); if(Build.VERSION.SDK_INT>=21){ Window window=getWindow(); window.setStatusBarColor(palette.getVibrantColor(Color.BLACK)); window.setNavigationBarColor(palette.getVibrantColor(Color.BLACK)); } } }); }}
效果图
这个顺序就是这个颜色的取值
感觉还挺好用的
阅读全文
0 0
- 使用调色板Palette在背景图中取色
- 使用调色板Palette在背景图中取色
- 使用调色板Palette在背景图中取色
- Palette调色板的使用
- palette调色板初级使用
- 使用 Palette 提取图片调色板
- Android Palette 调色板 的使用
- Palette调色板
- Palette调色板
- Palette(调色板)
- android 控件 调色板 Palette
- Palette调色板的演示
- 安卓Palette调色板
- V7兼容包——调色板Palette的使用
- Android学习之5.0三姐妹调色板palette的使用
- Android开发之palette的使用(安卓调色板)
- android Palette调色板的使用方法
- android5.x之Palette调色板
- hive&&beeline 数据导入导出
- 字符串的排列
- 穆年小菜鸟的日常随记——XML文件写入一个文件里面(适用所有的文件)
- 支持匿名函数 事件处理对象
- JAVA编程思想笔记--并发
- 使用调色板Palette在背景图中取色
- Eclipse 使用http://localhost:8080/ 访问出现404错误
- 关于unicode和utf-8的区别
- Qt使用Quazip直接读取压缩包内文件
- Thinkphp try{}catch()异常处理的写法
- Jenkins安装
- centos 不能上网,yum安装失败 解决办法
- lucene二----luke的使用
- SQL Server 数据库引擎怎样记录完整备份后修改过的数据