点击图片取该处色or颜色选择器简单实现方法
2016-08-17 09:44
183 查看
如图需求
当时是准备如图绘制,但要美工给颜色渐变规则和颜色代码时候,她说给你一张图你直接取就行了。细想一下确实可以实现。
提示图片不要使用wrap_content,会失去比例
思路大致如下
1. 任意图片
2. 转bitmap
3. ontouch获取相对图片坐标取RGB
4. RGB转16进制
5. 不同手机分辨率的适配(bitmap长度和实际长度是不一样的)
RGB转16进制
当时是准备如图绘制,但要美工给颜色渐变规则和颜色代码时候,她说给你一张图你直接取就行了。细想一下确实可以实现。
提示图片不要使用wrap_content,会失去比例
思路大致如下
1. 任意图片
2. 转bitmap
3. ontouch获取相对图片坐标取RGB
4. RGB转16进制
5. 不同手机分辨率的适配(bitmap长度和实际长度是不一样的)
mIvColor.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //根据坐标获取 ImageView imageView = ((ImageView) v); Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap(); //实际点击位置和图片的位置对应的关系 float scale = (float) bitmap.getWidth()/ imageView.getWidth(); //获取颜色 int color= bitmap.getPixel((int) (event.getX()*scale), (int) (event.getY()*scale)); int redValue = Color.red(color); int blueValue = Color.blue(color); int greenValue = Color.green(color); int alpha = Color.alpha(color); //文本显示得到的RGB //文本显示得到的16进制颜色代码 mTvRgb.setText("RGB:" + redValue + "," + greenValue + "," + blueValue +"\n"+ColorManager.RGBTo16(redValue,greenValue,blueValue) +"\n" + "Alpha:" + alpha); //显示得到的颜色 mLlColorShow.setBackgroundColor(Color.argb(alpha, redValue, greenValue, blueValue)); ULog.e("x---"+event.getX()+"y---"+event.getY()); return false; } });
RGB转16进制
/** * RGB转16进制 * @param r * @param g * @param b * @return */ public static String RGBTo16(int r,int g,int b){ // 如果次序是RRGGBB //10进制 long c = r << 16 | g << 8 | b; //16进制 return "HEX:"+"#"+Long.toHexString(c); }
相关文章推荐
- Android中如何编写图片选择器,实现按点击按钮时按钮的图片或者颜色发生变化
- 简单的JS控制button颜色随点击更改的实现方法
- 利用JS实现点击按钮后图片自动切换的简单方法
- 利用JS实现点击按钮后图片自动切换的简单方法
- js实现点击图片自动提交action的简单方法
- thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
- js实现点击图片自动提交action的简单方法
- 简单实现ImageView的加边框颜色的方法
- PHP实现获取图片颜色值的方法
- 如何去掉图片点击后的超级链接产生的虚框问题(两种实现方法)
- js实现点击后将文字或图片复制到剪贴板的方法
- 如何实现点击tabBar,让item改变图片,或者说是改变颜色
- PS简单快速屏蔽掉图片上某一种颜色的方法
- 简单方法实现webbrowser不显示图片flash的功能。
- 用VC6模拟点击图片按钮最简单的方法
- android中图片翻页效果简单的实现方法
- 简单的实现点击箭头图片切换的js代码
- visio实现背景透明图片的最简单方法
- PHP实现获取图片颜色值的方法
- OpenGJ的一个简单事例,实现点击变颜色