android制作自定义布局形状

Mar*_*iya 15 layout android shape viewgroup

我正在尝试制作自定义的ViewGroup布局形状,布局是星形或心形,三角形甚至使线条对角线.

因此,目标是为两个或更多ImageView制作拼贴视图. 三角形布局

心的布局

有人可以给我一个图书馆或一个方法来做这个伎俩吗?

ele*_*ven 9

您可以通过使用标准方法实现这个CanvasBitmapShader.

第一种方法可能如下所示:

@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();
}
Run Code Online (Sandbox Code Playgroud)

第二个看起来像这样:

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);
}
Run Code Online (Sandbox Code Playgroud)

因此,您需要定义形状,加载位图并绘制它们.