Android动态修改图片颜色的实现方式分析
来源:互联网 发布:金域名都南昌 编辑:程序博客网 时间:2024/06/05 15:06
1.修改色相、饱和度、亮度
参看:http://blog.csdn.net/sjf0115/article/details/7267063
2.使用透明度通道,获取图片轮廓
参看:http://blog.csdn.net/liu2604592/article/details/7759168
方法:
- //提取图像Alpha位图
- public static Bitmap getAlphaBitmap(Bitmap mBitmap,int mColor) {
- // BitmapDrawable mBitmapDrawable = (BitmapDrawable) mContext.getResources().getDrawable(R.drawable.enemy_infantry_ninja);
- // Bitmap mBitmap = mBitmapDrawable.getBitmap();
- //BitmapDrawable的getIntrinsicWidth()方法,Bitmap的getWidth()方法
- //注意这两个方法的区别
- //Bitmap mAlphaBitmap = Bitmap.createBitmap(mBitmapDrawable.getIntrinsicWidth(), mBitmapDrawable.getIntrinsicHeight(), Config.ARGB_8888);
- Bitmap mAlphaBitmap = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Config.ARGB_8888);
- Canvas mCanvas = new Canvas(mAlphaBitmap);
- Paint mPaint = new Paint();
- mPaint.setColor(mColor);
- //从原位图中提取只包含alpha的位图
- Bitmap alphaBitmap = mBitmap.extractAlpha();
- //在画布上(mAlphaBitmap)绘制alpha位图
- mCanvas.drawBitmap(alphaBitmap, 0, 0, mPaint);
- return mAlphaBitmap;
- }
deviceIV.setDrawingCacheEnabled(true);
deviceBmp = deviceIV.getDrawingCache();
时常会出现null,原因是超出系统提供最大的DrawingCache值,所以要在此代码前添加如下代码:
deviceIV.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
deviceIV.layout(0, 0, deviceIV.getMeasuredWidth(), deviceIV.getMeasuredHeight());
3.修改图片像素点的色值,动态修改图片
参看:http://blog.csdn.net/xys289187120/article/details/6580777
原文链接:http://blog.csdn.net/wangfayinn/article/details/8685231
0 0
- Android动态修改图片颜色的实现方式分析
- Android动态修改图片颜色的实现方式分析
- android 修改图片的颜色
- Android动态修改状态栏沉浸色(取图片颜色)
- android 动态改变图片颜色
- 在代码中,动态修改图片颜色
- 动态修改背景图片的颜色
- 动态修改NavigationBar的颜色
- 动态修改NavigationBar的颜色
- android 之修改图片的某一颜色值
- Android 修改Bitmap图片像素的信息 RGB颜色值
- 修改textview 的图片颜色
- Photoshop实现修改gif格式动态图片,如切换背景颜色等.....
- Android之动态修改system/etc目录下文件的一种实现方式-SELinux
- Android实现修改状态栏颜色
- 使用透明度获取图片轮廓动态修改图片颜色
- android 动态修改EditText光标颜色
- 动态修改shape颜色值 android开发
- mac 下更新sdk
- PLSQL collection 方法 和 三种collection对比
- Sicily 4959. Hidden Code
- 数据库、数据库管理系统和数据库系统的区别
- session维持登录状态的简单例子
- Android动态修改图片颜色的实现方式分析
- js转到jsp参数传递
- 防止疲劳和忧虑的第一原则
- linux下cat命令简略
- Linux-vim
- python中if __name__ == '__main__': 的解析
- NSNotificationCenter的同步和异步
- ext中的一些用法心得
- Sicily 2302. Queue Implementation Using a Circular