Można to osiągnąć za pomocą standardowych metod: Canvas
i BitmapShader
.
Pierwsza metoda mogłaby wyglądać następująco:
@Override protected void onDraw(Canvas canvas) {
//bitmap 01
canvas.save(Canvas.CLIP_SAVE_FLAG);
canvas.clipPath(shape01);
canvas.drawBitmap(bitmap01, 0, 0, paint);
canvas.restore();
//bitmap 02
canvas.save(Canvas.CLIP_SAVE_FLAG);
canvas.clipPath(shape02);
canvas.drawBitmap(bitmap02, 0, 0, paint);
canvas.restore();
}
Drugi mógłby wyglądać następująco:
BitmapShader shader01 = new BitmapShader(bitmap01, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
BitmapShader shader02 = new BitmapShader(bitmap02, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
Paint paint01 = new Paint();
Paint paint02 = new Paint();
paint01.setShader(shader01);
paint02.setShader(shader02);
@Override protected void onDraw(Canvas canvas) {
//bitmap 01
canvas.drawPath(path01, paint01);
//bitmap 02
canvas.drawPath(path02, paint02);
}
Więc trzeba określić swoje kształty, bitmap obciążenia i wyciągnąć je.
Nie jest to łatwy sposób na zrobienie tego przy pomocy "ImageViews", którą możesz użyć Canvas. – doubleA
Nie chcę stosować tego w ImageViews, chcę to zrobić dla ViewGroups. –
@MarwanZakariya są w stanie uzyskać ans to wygląda cool, jeśli jest zaimplementowany – SAVVY