圆角ImageView半径与可绘制半径不匹配

时间:2018-02-08 11:14:23

标签: android xml imageview android-drawable

我有一个自定义类,它围绕图像的左上角和右下角,其中radius.xml中的半径定义为50dp。角落看起来很整洁但是我需要在其上应用各种状态,例如当用户按下图像时需要边框。

我的问题是我在圆角图像的顶部应用的drawable显示与剪切图像的半径不同,即使是那些使用相同半径属性的半径。

Red area shows radius mismatch

之前有没有人遇到过这个问题,如果有的话你是如何克服这个问题的呢?

作为额外的注意事项,背后的背景可以是动态的(图像或颜色),因此在这种情况下简单地在边框周围应用颜色是行不通的。

感谢您的时间。

罗布。

1 个答案:

答案 0 :(得分:0)

可绘制半径似乎受到行程厚度的影响。 下面的图层列表显示了两条不同的曲线,即使它们具有相同的半径

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
            <corners
                android:topLeftRadius="75dp"
                android:topRightRadius="0dp"
                android:bottomLeftRadius="0dp"
                android:bottomRightRadius="0dp"
                />
            <size
                android:width="200dp"
                android:height="200dp" />
            <stroke
                android:width="1dp"
                android:color="#00FF00"
                />
        </shape>
    </item>
    <item >
        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
            <corners
                android:topLeftRadius="75dp"
                android:topRightRadius="0dp"
                android:bottomLeftRadius="0dp"
                android:bottomRightRadius="0dp"
                />
            <size
                android:width="200dp"
                android:height="200dp" />
            <stroke
                android:width="8dp"
                android:color="#BC9611"
                />
        </shape>
    </item>
</layer-list>