gpt4 book ai didi

android - 使用 ScaleType.CenterCrop 缩放后具有圆角的 ImageView

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

我正在尝试裁剪图像,然后将角变圆,以便它在屏幕上看起来更漂亮。

我能做的是在图像的角上做圆角处理,但裁剪有时会切断图像的边(取决于图像的大小/纵横比)。

所以我想做的是进行裁剪,然后应用圆角。我该怎么做?

圆化图像的角:

private Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);

final int color = 0xff000000;
final Paint paint = new Paint();
final Rect rect = new Rect(0,0,bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundpx = 20;

paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundpx, roundpx, paint);

paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);

return output;
}

然后我像这样设置 ImageView 的比例类型:imageView.setScaleType(ScaleType.CENTER_CROP)

最佳答案

如果你用 cardview 包装你的 imageview,你就实现了。

<android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="4dp"
card_view:cardUseCompatPadding="true">
<ImageView
android:id="@+id/ivImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/your_image" />
</android.support.v7.widget.CardView>

关于android - 使用 ScaleType.CenterCrop 缩放后具有圆角的 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26067071/

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