我有一个带位图的ImageView.该位图具有Alpha通道和透明像素.

当我尝试将ColorFiter与Mode.OVERLAY(由于蜂窝)一起使用时-提供的颜色覆盖了整个imageview(整个矩形),但是我只想覆盖非透明像素.我如何裁剪imageview的画布以在需要的地方执行过滤器?

更新

我在png中有灰色图片:

当我尝试使用MODE_ATOP时,我得到:

当我使用OVERLAY时,我得到:

而我想得到:

解决方法:

public class MyActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

final ImageView imageView = new ImageView(this);

setContentView(imageView);

final Paint paint = new Paint();

Canvas c;

final Bitmap src = BitmapFactory.decodeResource(getResources(),

android.R.drawable.sym_def_app_icon);

final int overlayColor = Color.RED;

final Bitmap bm1 = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Config.ARGB_8888);

c = new Canvas(bm1);

paint.setColorFilter(new PorterDuffColorFilter(overlayColor, PorterDuff.Mode.OVERLAY));

c.drawBitmap(src, 0, 0, paint);

final Bitmap bm2 = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Config.ARGB_8888);

c = new Canvas(bm2);

paint.setColorFilter(new PorterDuffColorFilter(overlayColor, PorterDuff.Mode.SRC_ATOP));

c.drawBitmap(src, 0, 0, paint);

paint.setColorFilter(null);

paint.setXfermode(new AvoidXfermode(overlayColor, 0, Mode.TARGET));

c.drawBitmap(bm1, 0, 0, paint);

imageView.setImageBitmap(bm2);

}

}

简而言之,我们使用OVERLAY模式绘制源位图和颜色,然后使用辅助位图(使用SRC_ATOP模式合成),使用AvoidXfermode将其组合以不绘制透明像素.

原始图片:

结果:

标签:clip,image,mask,android

来源: https://codeday.me/bug/20191127/2076869.html

android透明像素效率,android-非透明像素上的ImageView ColorFilter.夹相关推荐

  1. android截图工具效率,Android之高效率截图

    本文来自网易云社区 作者:孙圣翔 在一张Android手机上截图有好多办法,为了能够高效率的截图,我几乎把所有的方法都尝试了一般.走了好多路,也遇到了好多的问题. 只是想记录下这其中的不容易. 下面所 ...

  2. android 截屏 效率,android 截屏以及对该图进行模糊

    由于项目中用得比较多的两个功能 截图 和 模糊,我就整理成一个项目来概述. 一 .截图 核心代码 View.setDrawingCacheEnabled(true); View.buildDrawin ...

  3. 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题

    . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19698511 . 最近遇到了一系列的屏幕适配问题, 以及 ...

  4. 【Android 进程保活】提升进程优先级 ( 1 像素 Activity 提高进程优先级 | taskAffinity 亲和性说明 | 运行效果 | 源码资源 )

    文章目录 一.1 像素 Activity 提高进程优先级 1.主界面 MainActivity 2.1 像素 Activity 3.广播接收者 4.管理类 5.AndroidManifest.xml ...

  5. android 代码设置像素,【Android实例】用设计原则来重构1像素保活代码

    1 类图 在[FJU项目]1像素进程保活(二)中,涉及到的几个类的类图如下所示(仅供参考): 实线箭头:关联 虚线箭头:依赖 重构前UML类图在上图中,OnePixelManager里面有太多的职责, ...

  6. android中px单位,android中像素单位dp、px、pt、sp的比较

    dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖 ...

  7. android popupwindow 自定义背景,android – 无法将PopupWindow背景设置为透明

    我有以下代码: View child = getLayoutInflater().inflate(R.layout.contextual_menu_lp_activity,null) child.se ...

  8. android 自定义透明 等待 dialog,Android自定义Dialog内部透明、外部遮罩效果

    Android自定义Dialog内部透明.外部遮罩效果 发布时间:2020-09-09 03:01:41 来源:脚本之家 阅读:117 作者:zst1303939801 本文实例为大家分享了Andro ...

  9. android 透明主题 crash,Android 8.0 的填坑(透明的activity崩溃)

    一.透明的activity 不能继续使用 java.lang.RuntimeException:Unable to start activity ComponentInfo{net.maipeijia ...

最新文章

  1. 图之典—可视化图表的词典
  2. 《solidity学习笔记》chapter 3-solidity其他知识
  3. 深度学习推理时融合BN,轻松获得约5%的提速
  4. 高通8xxx平台双MIC设置
  5. /lib64/libc.so.6 is not a symbolic link 解决方法
  6. 如何查看eas源代码_MT5CTP扩展:MT4源代码(EA)适配器来了
  7. python 字典程序_Python 字典(Dictionary)操作详解
  8. 人才管理是什么意思_cms系统是什么意思,国内常用的cms内容管理系统有哪些
  9. QT5.10.0安装教程图文教程以及安装成功QT5.10.0后环境配置图文步骤
  10. 战神笔记本电脑自带access吗_笔记本电脑卡顿不要急着换,这几个方法,让你的电脑流畅爆表...
  11. JAVA JDK1.5-1.9新特性
  12. centos7 卸载软件
  13. wap页面和html5,WAP网站、3G网站、html5触屏版有什么区别?
  14. AE(4)实例:更换衣服色彩
  15. Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch
  16. 2011年春月游溧阳有感
  17. C++Primer第五版 第六章 课后习题答案
  18. 用esp8266做一个网络时钟
  19. 什么是RESTful风格的API
  20. 【论文笔记_对比学习_2021】CONTRASTIVE LEARNING WITH HARD NEGATIVE SAMPLES

热门文章

  1. Android Lambda 表达式使用实例,-
  2. java 泛型类使用,集合中添加不同类型数据
  3. 开启Mysql远程登录账号
  4. c# oracle datasource,C# 连接Oracle 数据库 示例源码下载
  5. x86从实模式到保护模式实验说明
  6. C++从入门到进阶近100本书推荐电子书pdf
  7. spark on yarn webUI logs不能查看
  8. vue-touchjs
  9. UICollectionView reloadData后cell被隐藏
  10. 指定查询条件,查询对应的集合List(单表)