我有一个自定义类,可以圆化图像的左上角和右下角,其中半径在 dimens.xml 中定义为 50dp。角看起来很整洁,但我需要在其上应用各种状态,例如当用户按下图像时需要边框。
我的问题是我在圆形图像顶部应用的可绘制对象显示的半径与我的剪切图像的半径不同,即使它们使用相同的半径属性也是如此。
以前有人遇到过这个问题吗?如果有的话,你是如何克服这个问题的?
作为额外说明,其背后的背景可以是动态的(图像或颜色),因此在这种情况下简单地在边框周围应用颜色是行不通的。
感谢您的宝贵时间。
罗布。
可绘制半径似乎受到笔划粗细的影响。 下面的图层列表显示了两条不同的曲线,即使它们具有相同的半径
<?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>
您可以尝试使用ShapeableImageView。它允许您圆角并添加匹配的轮廓。这是一个很好的教程。