gpt4 book ai didi

java - 在android中动态裁剪/剪切View的形状

转载 作者:行者123 更新时间:2023-12-01 12:25:59 25 4
gpt4 key购买 nike

我目前有一个 XML 格式的按钮模板(布局),我可以从代码中的资源加载它并动态创建按钮。

所以问题是,是否有任何可能的方法将按钮(或与此相关的任何 View )裁剪/剪切为特定形状?

假设我有一个矩形按钮,我可以将其剪切以创建一些三角形吗?这是一个例子:

enter image description here

无需为其创建自定义位图,有哪些可能性? (因为 XML 使用特定的笔划/半径内容,而这些内容在位图上无法正常工作)

即使在剪切后,它是否有可能保持其尺寸和边距?我真的很想知道。

预先感谢任何愿意提供帮助的人!

最佳答案

您可以使用Canvas为了你想要的。它将允许您通过绘制形状、删除某些区域等来修改 View 。

例如,以下函数将返回所提供的初始位图的圆形裁剪位图:

public Bitmap getCroppedBitmap(Bitmap bitmap) {

Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawCircle((bitmap.getWidth() / 2), (bitmap.getHeight() / 2),
(output.getWidth() / 2), paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
canvas = null;
paint = null;
// bitmap.recycle();
return output;
}

要将 View 转换为位图,请参阅 this .

关于java - 在android中动态裁剪/剪切View的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26328621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com