乱七八糟的圆角

Posted

技术标签:

【中文标题】乱七八糟的圆角【英文标题】:Messed rounded corners 【发布时间】:2011-10-26 09:38:38 【问题描述】:

我想创建带有圆形右下角右上角角的自定义按钮。

但是,我得到 左下角右上角 取整,尽管我的实现似乎没问题.

我做错了什么?

我使用以下存储在可绘制文件夹中的形状定义:

button_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle">

  <solid android:color="#F66622"/>
  <padding 
    android:left="5dip"
    android:top="5dip"
    android:right="5dip"
    android:bottom="5dip"
  />
  <corners
    android:radius="20dip"
    android:bottomLeftRadius="0dip"
    android:topLeftRadius="0dip"
  />
</shape>

布局文件是这样的:

ma​​in.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:background="@drawable/bg"
    >
    <Button 
        android:id="@+id/btnFoo"
        android:text="@string/btn_foo_title"
        android:background="@drawable/button_shape"
        android:layout_
        android:layout_
        android:layout_margin="5dip"
        android:layout_centerInParent="true"
        android:textSize="26sp"
    />
</RelativeLayout>

这是结果:

我也尝试在 button_shape 文件中分别定义每个角的半径

...
<corners
    android:bottomLeftRadius="0dip"
    android:topLeftRadius="0dip"
    android:bottomRightRadius="20dip"
    android:topRightRadius="20dip"
/>
...

...结果相同。

这个功能有可能在 Android SDK 中被搞砸了吗?

【问题讨论】:

我怀疑功能是否混乱!做项目 -> 清理,看看它是否解决了问题。 我试过了,一点用都没有。 【参考方案1】:

愚蠢的问题,但是您是否尝试将 bottomLeft 舍入并查看它是否将右下角舍入?我知道这不是一个真正的解决方案,但变通方法也很好。如果它看起来是您想要的方式,那么您如何实现它并不重要。

【讨论】:

当我把它改成 android:bottomRightRadius="0dip" android:topLeftRadius="0dip"/>,结果是什么我预计。但是,这种解决方法对我来说并不令人满意:-) 如果你是为了自我满足而编写代码,那么我不知道该告诉你什么。很有可能这是一个没有人发现的错误,因为之前没有人四舍五入少于 4 个角,或者没有人足够关心这个错误来提交它。然而,如果你正在编写代码来制作一个功能正常的应用程序,那么变通方法并不完美,但一个工作应用程序本身就足够令人满意。至少,如果这是你不使用它的原因,我的回答值得评价:D

以上是关于乱七八糟的圆角的主要内容,如果未能解决你的问题,请参考以下文章

k8s-乱七八糟

乱七八糟记一下乱七八糟的碎片化知识

西格玛Σ上下左右那些乱七八糟的都是啥意思

Python相关的乱七八糟的东西

乱七八糟

清单文件 属性 乱七八糟