gpt4 book ai didi

android试图圆位图角

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:31 24 4
gpt4 key购买 nike

我有一个 imageView,我正在尝试创建圆角,尝试了这篇文章中的所有解决方案:How to make an ImageView with rounded corners?但没有任何效果..这是我的 XML

    <RelativeLayout
android:id="@+id/RL_ImageHolder"
android:layout_width="150dp"
android:layout_height="180dp"
android:layout_alignBottom="@+id/relativeLayout2"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/relativeLayout2"
android:layout_marginLeft="10dp" >

<ImageView
android:id="@+id/imgPreview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:contentDescription="Preview"

/>
</RelativeLayout>

这就是我使用上面链接的帖子中提到的方法设置 ImageView 的方式:

  byteArray = extras.getByteArray("picture");
if (byteArray != null) {
bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
preview.setScaleType(ScaleType.CENTER_CROP);
preview.setImageBitmap(getRoundedCornerBitmap(bmp));

图像设置正确,但它仍然是一个矩形.. 知道为什么它不起作用吗?

编辑: 刚刚发现仅当包含图像的布局具有固定的宽度/高度时才行不通。必须考虑如何管理它。谢谢大家

最佳答案

尝试使用下面的代码 fragment :

public static Bitmap GetCurveImage(Bitmap bitmap) {
// Bitmap myCoolBitmap = ... ; // <-- Your bitmap you
// want rounded
int w = bitmap.getWidth(), h = bitmap.getHeight();

// We have to make sure our rounded corners have an
// alpha channel in most cases
Bitmap rounder = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(rounder);

// We're going to apply this paint eventually using a
// porter-duff xfer mode.
// This will allow us to only overwrite certain pixels.
// RED is arbitrary. This
// could be any color that was fully opaque (alpha =
// 255)
Paint xferPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
xferPaint.setColor(Color.RED);

// We're just reusing xferPaint to paint a normal
// looking rounded box, the 20.f
// is the amount we're rounding by.
canvas.drawRoundRect(new RectF(0, 0, w, h), 5.0f, 5.0f, xferPaint);

// Now we apply the 'magic sauce' to the paint
xferPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));

Bitmap result = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas resultCanvas = new Canvas(result);
resultCanvas.drawBitmap(bitmap, 0, 0, null);
resultCanvas.drawBitmap(rounder, 0, 0, xferPaint);

return result;
}

希望对您有所帮助。

关于android试图圆位图角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13949036/

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