美文网首页
Android利用SRC_IN模式下的Xfermode实现图片倒

Android利用SRC_IN模式下的Xfermode实现图片倒

作者: aruba | 来源:发表于2020-01-08 11:04 被阅读0次
    倒影效果图片.jpg
    目标图片为(查看原图)
    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);
        }
    

    项目地址:https://gitee.com/aruba/Xfermode.git

    相关文章

      网友评论

          本文标题:Android利用SRC_IN模式下的Xfermode实现图片倒

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