【问题标题】:Rounded Corner ImageView radius doesn't match drawable radius圆角 ImageView 半径与可绘制半径不匹配
【发布时间】:2018-02-08 11:14:23
【问题描述】:

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

我的问题是我在圆形图像顶部应用的可绘制对象显示的半径与我的剪切图像的半径不同,即使它们使用相同的半径属性。

以前有没有人遇到过这个问题,如果有的话,您是如何解决这个问题的?

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

感谢您的宝贵时间。

罗伯。

【问题讨论】:

  • 是的,这两个半径不匹配,你必须使用相同的半径
  • 他们使用相同的 50dp 值。似乎半径也基于边界的宽度。我希望能够将外边缘限制为提供的半径 (50dp)。
  • 你可以看到它不是真的......
  • 您正在使用 2 种不同的算法来执行相同的任务。他们使用不同的近似值。您应该使用相同的算法来执行这两个操作。

标签: android xml imageview android-drawable


【解决方案1】:

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

<?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>

【讨论】:

  • 是的,这也是我所看到的。
  • 好的,但是这篇文章是如何回答这个问题的?!这是作为答案发布的,但它并不试图回答这个问题。它可能应该是编辑、评论、另一个问题或完全删除。
  • 我无法发表评论,因为这是我的第一篇文章,它没有解决 teh_raab 的问题,但它表明曲线的弧度根据笔划的粗细而有所不同。我可以看到 1dp 笔划或没有笔划的填充形状产生与 RoundRect 相同的曲线,但带有笔划的形状会产生不同的结果。
猜你喜欢
  • 2011-12-23
  • 2016-03-28
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 2015-05-15
相关资源
最近更新 更多