Android 最完美的取色盘ColorPickView

前言:
1.第一眼看到取色盘功能时,一脸懵逼。
2.百度一番之后,有用张图片来代替取色盘,用Bitmap.getPixel()功能取色,的确可以。但瑕疵太大。比如,图片的RGB分布远不如HSV模型用代码写的取色盘那样细腻,无法反向定位(根据颜色值定位到像素点)。
3.由于时间紧,将就着用了一个月,经常感觉取值不标准,就决心自己写了一个,考虑到网上还没有类似完整功能的取色盘,所以分享给大家。

当然要谢谢前辈们指点:
1.HSV模型了解

项目代码注释写的很详细,地址:
https:

截图:
Android 最完美的取色盘ColorPickView_第1张图片

根据该开源项目,可以完成各种跟取色盘相关的功能

10 秒钟将取色盘功能加入到你的项目中

1. build添加

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}
 compile '

2.xml中引入

   <com.
        android:id="@+id/color_picker_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        colorpicker:center_color="#FFFFFF"
        colorpicker:center_radius="10dp"
        colorpicker:circle_radius="150dp" />
<declare-styleable name="color_picker">
        
        <attr name="circle_radius" format="dimension" />
        
        <attr name="center_radius" format="dimension" />
        
        <attr name="center_color" format="color" />
    declare-styleable>

3.activity中调用

public class MainActivity extends Activity {
    private TextView txtColor;
    private ColorPickView myView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myView = (ColorPickView) findViewById(R.id.color_picker_view);
        txtColor = (TextView) findViewById(R.id.txt_color);
        //根据颜色值,定位到像素点
        myView.setPaintPixel(Color.rgb(255, 0, 0));
        myView.setOnColorChangedListener(new ColorPickView.OnColorChangedListener() {

            @Override
            public void onColorChange(int color) {
                //得到颜色值,进行操作
                txtColor.setTextColor(color);
                int r = Color.red(color);
                int g = Color.green(color);
                int b = Color.blue(color);
                txtColor.setText((r + "," + g + "," + b));
                Log.i("info", "color:" + color);
            }

        });
    }

}

**欢迎start,

你可能感兴趣的:(view)