我的观点xml:
<ImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/border"
android:cropToPadding="true"
android:padding="6dp"
android:layout_margin="6dp" />
我的带有角落的drawbale xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="6dp"
android:color="#191970" />
<padding
android:left="6dp"
android:top="6dp"
android:right="6dp"
android:bottom="6dp" />
<corners
android:radius="8dp" />
</shape>
我的代码,我在其中添加图片并进行缩放:
mImageView = view.findViewById(R.id.imageView);
mImageView.setImageResource(mDeskCards.get(0).getDrawable()); // some .png file
mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
mImageView.setOnClickListener(this);
我拥有的东西与我需要的东西: https://i.stack.imgur.com/9WPI3.png
答案 0 :(得分:0)
如果您在图像上放置带有可绘制xml的视图,您将获得正在寻找的圆角效果。
为了澄清,你应该有这样的事情:
<RelativeLayout
.... >
<ImageView
.... />
<RelativeLayout
android:background="@drawable/my_drawable" />
</RelativeLayout>
答案 1 :(得分:0)
有多个库可以帮助您实现这一目标。我建议的是Glide。你会在网上找到很多教程。要做你想做的事,你可以使用这个代码
Glide.with(context).load(url).apply(RequestOptions.circleCropTransform()).into(mImageView);
答案 2 :(得分:0)
使用普通的ImageView,图像将始终以方角显示
我解决了它创建我自己的从View扩展的类,创建了一个剪切路径,并在onDraw中首先绘制边框,然后调用canvas.clipPath(myClipPath, Region.Op.INTERSECT);
,然后绘制图像。这也适用于圆形或椭圆形边框。
如果边角半径很小且边框笔划粗,那么你可以尝试不剪裁:在onDraw中首先绘制图像,然后绘制边框。
已添加:
从ImageView派生一个类并使用类似的东西:
private Path clipPath;
private RectF rect;
private float radius = 20;
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
clipPath = new Path();
rect = new RectF(0, 0, getWidth(), getHeight());
clipPath.addRoundRect(rect, radius, radius, Path.Direction.CW);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.clipPath(clipPath);
super.onDraw(canvas);
}
答案 3 :(得分:0)
您可以试用我的图书馆:PowerfulImageView 只需在布局中使用它而不是ImageView,并将形状设置为roundedRectangle或solidRoundedRectangle,您可以直接在xml(或通过Java)中选择边框的颜色,宽度和半径。
基本上,你的view.xml会变成:
<com.stefanosiano.powerfulimageview.PowerfulImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:cropToPadding="true"
android:padding="6dp"
android:layout_margin="6dp"
app:piv_shape_mode="rounded_rectangle" />
如果您使用它,请告诉我:)