外贸出口营销网站,素材免费网站,网页制作成app,ip形象设计排版我有一个带位图的ImageView.该位图具有Alpha通道和透明像素.当我尝试将ColorFiter与Mode.OVERLAY(由于蜂窝)一起使用时-提供的颜色覆盖了整个imageview(整个矩形),但是我只想覆盖非透明像素.我如何裁剪imageview的画布以在需要的地方执行过滤器#xff1f;更新我在png中有灰色…我有一个带位图的ImageView.该位图具有Alpha通道和透明像素.当我尝试将ColorFiter与Mode.OVERLAY(由于蜂窝)一起使用时-提供的颜色覆盖了整个imageview(整个矩形),但是我只想覆盖非透明像素.我如何裁剪imageview的画布以在需要的地方执行过滤器更新我在png中有灰色图片当我尝试使用MODE_ATOP时,我得到当我使用OVERLAY时,我得到而我想得到解决方法:public class MyActivity extends Activity {Overrideprotected 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