[ 转自:http://yueguc.iteye.com/blog/782494]

1.使用ColorFilter

MaskFilter是对一个Paint的alpha通道的转换,而ColorFilter则是对每一个RGB通道应用转换。所有由ColorFilter所派生的类在执行它们的转换时,都会忽略alpha通道。

Android包含三个ColorFilter:

ColorMatrixColorFilter 可以指定一个4×5的ColorMatrix并将其应用到一个Paint中。ColorMatrixes通常在程序中用于对图像进行处理,而且由于它们支持使用矩阵相乘的方法来执行链接转换,所以它们很有用。

LightingColorFilter 乘以第一个颜色的RGB通道,然后加上第二个颜色。每一次转换的结果都限制在0到255之间。

PorterDuffColorFilter 可以使用数字图像合成的16条Porter-Duff 规则中的任意一条来向Paint应用一个指定的颜色。

使用setColorFilter方法应用ColorFilter,如下所示:

Java代码 收藏代码
  1. myPaint.setColorFilter(newLightingColorFilter(Color.BLUE,Color.RED));

API中的ColorMatrixSample是说明如何使用ColorFilter和Color Matrix的非常好的例子。

2.

Java代码 收藏代码
  1. privatestaticvoidsetContrast(ColorMatrixcm,floatcontrast){
  2. floatscale=contrast+1.f;
  3. floattranslate=(-.5f*scale+.5f)*255.f;
  4. cm.set(newfloat[]{
  5. scale,0,0,0,translate,
  6. 0,scale,0,0,translate,
  7. 0,0,scale,0,translate,
  8. 0,0,0,1,0});
  9. }

Java代码 收藏代码
  1. floatcontrast=mAngle/180.f;
  2. setContrast(cm,contrast);
  3. paint.setColorFilter(newColorMatrixColorFilter(cm));
  4. canvas.drawBitmap(mBitmap,x+mBitmap.getWidth()+10,y,paint);



Android Graphics - ColorFilter_第1张图片Android Graphics - ColorFilter_第2张图片

更多相关文章

  1. android 通过eclipse混淆代码 打包 + proguard 总结
  2. EditText获取焦点框的颜色改变
  3. Android的SDK与源代码
  4. Android 图片压缩实现过程代码
  5. android中ImageView设置选中与不选中颜色
  6. android开源代码编译方法
  7. 一个二维码实现IOS和android两个平台的下载核心代码
  8. Android 中提高代码安全性-混淆代码
  9. win平台改代码到android 平台需要注意

随机推荐

  1. Android(安卓)使用Javascript作为脚本计
  2. 使用Uiautomator遇到的问题
  3. Android设备兼容性 1
  4. Android(安卓)Studio安装及首次运行遇到
  5. 百度云推送实践
  6. android中使用zxing扫描二维码以及条形码
  7. Android的安装过程
  8. Android(安卓)AsyncTask 原理及Java多线
  9. Android(安卓)studio gradle文件说明与配
  10. Android(安卓)四种绑定监听事件的方式