我有一個應用程序,要求整個RelativeLayout(現在是一個自定義視圖擴展它)需要使用自定義圖像屏蔽。在佈局中有許多視圖需要通過觸摸來訪問並且是動態的。安卓視圖/佈局屏蔽
我已經成功地掩蓋了區域使用回答另一個問題繪製形狀:
@Override
protected void dispatchDraw(Canvas canvas) {
Path path = new Path();
int count = canvas.save();
path.addCircle(400, 200, 300, Path.Direction.CW);
canvas.clipPath(path);
super.dispatchDraw(canvas);
canvas.restoreToCount(count);
}
不過,我需要使用圖像源作爲我的面具,而不是源的形狀,我可以創作。我已經使用了PorterDuff工具來改變位圖:
Bitmap resizedBitmap = Bitmap.createScaledBitmap(mMask, this.getWidth(), this.getHeight(), false);
Bitmap result = Bitmap.createBitmap(this.getWidth(), this.getHeight(), Bitmap.Config.ARGB_8888); //create another bitmap with same height
Canvas mCanvas = new Canvas(result);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
mCanvas.drawBitmap(resizedBitmap, 0, 0, paint);
paint.setXfermode(null);
onDrawCanvas.drawBitmap(result, 0,0, paint);
,對掩蔽圖像的作品,但我需要用夾子(我認爲)來掩蓋。有沒有一種方法可以使用不同的PorterDuff模式從此圖像中獲取路徑?還是有一個更簡單的方法,就像在iOS中,您可以直接使用圖像設置layerMask?提前致謝。
我嘗試了你建議的兩種方法。使用SVG的路徑跟蹤工作,但在蒙版曲線上有點波動。我結束了與位圖解決方案。謝謝!! – user3574181