具有不同半径角的形状不能应用于ImageView

时间:2017-11-03 09:52:59

标签: android

所以,我有这个形状只是简单地将半径25dip的角添加到顶角,它适用于任何类型的视图,但ImageViews,我也注意到这种行为只发生在不同的角形状上,如果形状角有相同的半径。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="0dip"
        android:bottomLeftRadius="0dip" android:bottomRightRadius="0dip"
        android:topLeftRadius="25dip" android:topRightRadius="25dip"/>
</shape>

ImageView代码示例

        <ImageView
            android:id="@+id/product_item_thumbnail_iv"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:scaleType="centerCrop"
            android:layout_margin="1dp"
            android:adjustViewBounds="true"
            android:src="@drawable/no_image"
            android:background="@drawable/product_item_image"/>

我尝试了什么:

  • setClipToOutline(真);即使在24级以上的API级别上也不起作用
  • 将FrameView包装在FrameLayout中并将角应用于布局:ImageView未被剪裁

1 个答案:

答案 0 :(得分:0)

尝试使用此

api()

和功能:

ImageView image = (ImageView) findViewById(R.id.product_item_thumbnail_iv);
Bitmap bitImg = BitmapFactory.decodeResource(getResources(),
R.drawable.product_item_image);

image.setImageBitmap(getRoundedCornerImage(bitImg));