美文网首页
android 图片处理和显示相关

android 图片处理和显示相关

作者: codeflame | 来源:发表于2018-11-15 23:10 被阅读0次

PorterDuffXfermode

PorterDuffXfermode是Xfermode的子类。其单词组成应为:porter duff transfer mode,作用是图像的变换处理(能够实现我们所理解的各种图像叠加)

假定两个bitmap:destinationImage和sourceImage,它们以下列顺序被画到一起:

 Paint paint = new Paint();
 canvas.drawBitmap(destinationImage, 0, 0, paint);

 PorterDuff.Mode mode = // choose a mode
 paint.setXfermode(new PorterDuffXfermode(mode));

 canvas.drawBitmap(sourceImage, 0, 0, paint);

根据不同的PorterDuff.Mode的选择,效果简述如下图:

PorterDuffMode.gif

ImageView.ScaleType

这里转载:Android ImageView 的scaleType 属性图解

摘抄他的总结:八个ScaleType,其实可以分为三个类型

1.以FIT_开头的4种,它们的共同点是都会对图片进行缩放,其缩放目的为使图片能够恰好完全显示出来。
(1)完全显示图片为前提下,图片保持宽高比缩放直到恰好宽 / 高顶着ImageView的宽 / 高,图片太大就缩小,太小就放大。FIT_CENTER(默认),FIT_STARTFIT_END,控制缩放后放在宽 / 高的开始、中间、结尾一侧。
(2)FIT_XY如其描述,不管图片宽高比,总是缩放到图片宽高与ImageView宽高相等,能够完全显示图片且填充满ImageView

2.以CENTER_开头的3种,它们的共同点是居中显示,图片的中心点会与ImageView的中心点重叠。
(1)CENTER中心重合,不做任何缩放处理
(2)CENTER_CROP中心重合,等比缩放到完全填充ImageView。注意对比与FIT_的描述差异,这个是等比缩放+完全填充ImageView+图片不一定完全显示
(3)CENTER_INSIDE完全显示图片并居中,雷同FIT_CENTER,唯一差别在于,若图片宽高均小于ImageVIew,则不会缩放而是直接显示

3.ScaleType.MATRIX,在xml中设置这个,默认等效于直接new的Matrix

相关文章

网友评论

      本文标题:android 图片处理和显示相关

      本文链接:https://www.haomeiwen.com/subject/oliufqtx.html