美文网首页
Android的View裁剪

Android的View裁剪

作者: owant | 来源:发表于2016-07-16 11:08 被阅读1171次

    一般我们的View都是矩形的,但是如果我们要裁剪成为其他的形状呢?要如何做?是直接重写onDraw画出形状?还是什么呢?

    例子

    美图秀秀的图片拼图,如果你直接通过一个View进行的话,发现难度比较大,因为图片移动不影响附近的图片,而且在附近的区域看不见的。说明他们是三个独立的View。

    Paste_Image.png

    如何裁剪

    使用android 的Xfermode模式进行裁剪。在View和ViewGroup是不一样的,View直接在onDraw进行,ViewGroup在dispathDraw进行

        @Override
        protected void onDraw(Canvas canvas) {
    
            //进行canvas图形运算
            canvas.saveLayer(0, 0, mWith, mHeight, mPaint, Canvas.ALL_SAVE_FLAG);
            super.onDraw(canvas);
            mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
            canvas.drawBitmap(makeDst(mWith, mHeight), 0, 0, mPaint);
            mPaint.setXfermode(null);
    
        }
    
    

    本例子是我在面试一家公司时遇到的,那时候我拿出的方法是以上方法。关键是,那个裁剪的图片,移动并不出现在附近的View下面,所以不要被复杂化了,是三个裁剪的ViewGroup后拼接在一起的。

    相关文章

      网友评论

          本文标题:Android的View裁剪

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