android制作自定义布局形状[关闭]

Posted

技术标签:

【中文标题】android制作自定义布局形状[关闭]【英文标题】:android make custom layout shape [closed] 【发布时间】:2015-10-01 03:22:02 【问题描述】:

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

所以目标是为两个或多个 ImageView 制作拼贴视图。

谁能给我一个图书馆或一种方法来做这个把戏?

【问题讨论】:

使用“ImageViews”不是一个简单的方法,您可以选择使用 Canvas。 我不想在 ImageViews 上应用这个,我想为 ViewGroups 做这个。 @MarwanZakariya 如果实施的话,你能得到它的答案吗? 【参考方案1】:

您可以通过使用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();

第二个可能是这样的:

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);

所以你需要定义你的形状,加载位图并绘制它们。

【讨论】:

以上是关于android制作自定义布局形状[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Android 自定义形状按钮

具有特定形状的 Android 自定义视图

如何在java中制作自定义嵌套布局[关闭]

如何在Android中制作自定义相机布局?

自定义 Android 视图在线性和相对布局中显示不同

Android 问题:根活动使用自定义对话框布局而不是 main.xml