社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
前言:
1.第一眼看到取色盘功能时,一脸懵逼。
2.百度一番之后,有用张图片来代替取色盘,用Bitmap.getPixel()功能取色,的确可以。但瑕疵太大。比如,图片的RGB分布远不如HSV模型用代码写的取色盘那样细腻,无法反向定位(根据颜色值定位到像素点)。
3.由于时间紧,将就着用了一个月,经常感觉取值不标准,就决心自己写了一个,考虑到网上还没有类似完整功能的取色盘,所以分享给大家。
当然要谢谢前辈们指点:
1.HSV模型了解
项目代码注释写的很详细,地址:
https:
截图:
根据该开源项目,可以完成各种跟取色盘相关的功能
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,
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!