gpt4 book ai didi

android - 需要在 Android 应用程序中裁剪图像的示例

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:39 26 4
gpt4 key购买 nike

抱歉,这个不是技术性的问题。

我正在研究如何在 Android 应用程序中实现一个非常常见的功能,用户可以在其中裁剪图像的一部分。这通常使用悬停在阴影图像上方的方形窗口来执行。一个很好的例子是在 linkedin 应用程序中选择个人资料图片。有谁知道或有很好的例子说明如何做到这一点?

提前致谢。

最佳答案

尝试下面的示例方法。您不仅可以从位图中的任意位置剪切矩形,还可以剪切任何形状

您也可以从位图的中心剪切一个米奇老鼠

下面的方法是切割一个矩形位图,使位图的左侧有尖三角形。就像 whatsapp 对聊天中共享的图像缩略图所做的那样。

使用 setXfermode(new PoterDuffXfermode(Mode.CLEAR)) 从 Paint 中绘制的任何内容都将从位图中清除像素。

试一试..希望这有帮助:)

private Bitmap cropAndGivePointedShape(Bitmap originalBitmap)
{
Bitmap bmOverlay = Bitmap.createBitmap(originalBitmap.getWidth(),
originalBitmap.getHeight(),
Bitmap.Config.ARGB_8888);

Paint p = new Paint();
p.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(originalBitmap, 0, 0, null);
canvas.drawRect(0, 0, 20, 20, p);

Point a = new Point(0, 20);
Point b = new Point(20, 20);
Point c = new Point(0, 40);

Path path = new Path();
path.setFillType(FillType.EVEN_ODD);
path.lineTo(b.x, b.y);
path.lineTo(c.x, c.y);
path.lineTo(a.x, a.y);
path.close();

canvas.drawPath(path, p);

a = new Point(0, 40);
b = new Point(0, 60);
c = new Point(20, 60);

path = new Path();
path.setFillType(FillType.EVEN_ODD);
path.lineTo(b.x, b.y);
path.lineTo(c.x, c.y);
path.lineTo(a.x, a.y);
path.close();

canvas.drawPath(path, p);

canvas.drawRect(0, 60, 20, originalBitmap.getHeight(), p);

return bmOverlay;
}

关于android - 需要在 Android 应用程序中裁剪图像的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134014/

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