如何在Android中裁剪六边形、八角形和圆形的图像?
我想裁剪六边形、八角形和圆形形状。我使用了自定义图像视图类,并在xml中用于显示图像。它适用于不同的形状 现在我需要在下一个活动中以用户选择的形状裁剪图像。我在下一个活动中获得图像 我试过这个例子: 但是图像的形状不合适,只有部分图像被遮住了 我如何才能做到这一点?阅读Romain Guy关于如何制作圆角图像的文章。使用此技术,您可以创建各种形状 这是怎么回事 如果您有预定义数量的形状,我建议您使用由定义的一些形状创建一个类。现在,每当用户要求在ImageView上使用不同的形状时,您就创建一个位图,并从该类返回一个位图,然后将其放在ImageView上 例如,八角形是这样的:如何在Android中裁剪六边形、八角形和圆形的图像?,android,crop,geometry,shape,Android,Crop,Geometry,Shape,我想裁剪六边形、八角形和圆形形状。我使用了自定义图像视图类,并在xml中用于显示图像。它适用于不同的形状 现在我需要在下一个活动中以用户选择的形状裁剪图像。我在下一个活动中获得图像 我试过这个例子: 但是图像的形状不合适,只有部分图像被遮住了 我如何才能做到这一点?阅读Romain Guy关于如何制作圆角图像的文章。使用此技术,您可以创建各种形状 这是怎么回事 如果您有预定义数量的形状,我建议您使用由定义的一些形状创建一个类。现在,每当用户要求在ImageView上使用不同的形状时,您就创建一个
public static Bitmap drawOctagonShapedBitmap(Bitmap src) {
Bitmap dst = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);
//Create an output as big as the actual bitmap.
Path octagon = null; //Create an octagon shape, it should be big enough to crop enough of the bitmap.
Canvas canvas = new Canvas(dst);
Paint mPaint = new Paint();
BitmapShader mBitmapShader = new BitmapShader(src, Shader.TileMode.CLAMP,
Shader.TileMode.CLAMP);
mPaint.setAntiAlias(true);
mPaint.setShader(mBitmapShader);
canvas.drawPath(octagon, mPaint);
return dst;
}
你在找这样的风景吗?我使用了这个..但它只能以不同的形状显示图像。我需要以用户选择的形状裁剪图像。路径八角形为空。我的应用程序崩溃要替换什么