![](https://img.haomeiwen.com/i6288115/8a36df32a040d5e6.jpg)
倒影效果图片.jpg
目标图片为(查看原图)
![](https://img.haomeiwen.com/i6288115/8d82ca95f05caeba.png)
invert_shade.png
private Bitmap bitmapSrc;
private Bitmap bitmapDst;
private Paint mPaint = new Paint();
初始化参数
public InvertImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setLayerType(LAYER_TYPE_SOFTWARE, null);
bitmapSrc = BitmapFactory.decodeResource(getResources(), R.mipmap.xyjy6);
bitmapDst = BitmapFactory.decodeResource(getResources(), R.mipmap.invert_shade);
}
onDraw方法中处理
@Override
protected void onDraw(Canvas canvas) {
//画原图
canvas.drawBitmap(bitmapSrc, 0, 0, mPaint);
//在原图下方画目标图
canvas.drawBitmap(bitmapDst, 0, bitmapSrc.getHeight(), mPaint);
Xfermode xfermode = new PorterDuffXfermode(PorterDuff.Mode.SRC_IN);
mPaint.setXfermode(xfermode);
Matrix matrix = new Matrix();
//上下镜像效果对Y轴进行负拉伸
matrix.setScale(1,-1);
matrix.postTranslate(0,bitmapSrc.getHeight()*2);
canvas.drawBitmap(bitmapSrc, matrix, mPaint);
mPaint.setXfermode(null);
}
网友评论