如何设置ImageView
圆角而不是内部图像。
我正在尝试通过滑动设置ImageView
的圆角,但滑动仅设置图像的圆角而不是ImageView
。
我在CardView
中创建了ImageView
.我用捏合来缩放手势ImageView
. 当我使用滑动来设置ImageView
的圆角时,然后滑动设置图像的角,而不是ImageView
与CardView
形状相同。
您可以使用此库 https://github.com/siyamed/android-shape-imageview 它提供了许多形状,可以为您提供帮助!
首先在build.gradle中添加此依赖项(应用程序(
compile 'com.github.siyamed:android-shape-imageview:0.9.+@aar'
现在要获得圆角图像视图,您需要使用
<com.github.siyamed.shapeimageview.mask.PorterShapeImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:siShape="@drawable/shape_rounded_rectangle"
android:src="@drawable/neo"
app:siSquare="true"/>
并创建一个名为shape_rounded_rectangle
的新可绘制对象文件,其中包含:
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:topLeftRadius="18dp"
android:topRightRadius="18dp"
android:bottomLeftRadius="18dp"
android:bottomRightRadius="18dp" />
<solid android:color="@color/black" />
</shape>
要获得带有边框的矩形,只需使用
<com.github.siyamed.shapeimageview.RoundedImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/neo"
app:siRadius="6dp"
app:siBorderWidth="6dp"
app:siBorderColor="@color/darkgray"
app:siSquare="true"/>
这是你得到的:
图像无边框
和带边框的图像
您可以在自定义 ImageView 中重写 onDraw 方法并在画布上绘制 RoundRect:
@Override
protected void onDraw(Canvas canvas) {
rect = new RectF(0, 0, this.getWidth(), this.getHeight());
path.addRoundRect(rect, radius, radius, Path.Direction.CW);
canvas.clipPath(path);
super.onDraw(canvas);
}