在我的应用程序中,我需要带有圆角的ImageView
,所以我在ImageView
内设置framelayout
,当我设置scaleType
centerCrop
时,图像在ImageView
内设置在第一次加载时伸展,再次刷新页面图像没有拉伸并设置圆角。我怎样才能避免第一次拉伸。提前谢谢。
以下是XML代码
<FrameLayout
android:id="@+id/imageframe"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:background="@drawable/image_rounded"
android:src="@drawable/dummypost1"
android:scaleType="centerCrop"/>
<ImageView
android:src="@drawable/image_rounded"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:scaleType="centerCrop"/>
</FrameLayout>
答案 0 :(得分:2)
如果你想要一个圆角的ImageView
,就不需要像这样包装。
您只能在布局中使用ImageView
并使用glide
,您可以使用此方法应用圆角。
首先在你的gradle写中,
编译'com.github.bumptech.glide:glide:3.7.0'
对于带圆角的图像,
public void loadImageWithCorners(String url, ImageView view) {
Glide.with(context)
.load(url)
.asBitmap()
.centerCrop()
.placeholder(R.color.gray)
.error(R.color.gray)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(new BitmapImageViewTarget(view) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCornerRadius(32.0f); // radius for corners
view.setImageDrawable(circularBitmapDrawable);
}
});
}
通话方法:
loadImageWithCorners("your url","your imageview");