我需要有一个左下角/左下角的背景(但不是左上/右上),下面是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle" android:padding="1dp">
<solid android:color="#FFbdbebd"/>
<corners
android:bottomLeftRadius="12dip"
android:bottomRightRadius="12dip"
android:topLeftRadius="0dip"
android:topRightRadius="0dip"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
但结果是一个没有任何圆角的普通矩形,如果我只使用:
android:radius="12dip"
Run Code Online (Sandbox Code Playgroud)
然后所有角落都是圆形的,我搜索并找到了与此相关的错误:
http://code.google.com/p/android/issues/detail?id=9161
但是臭虫说:
左/右切换,因为android:bottomRightRadius ="2dp"结果指定左下角圆角.
这可能与我的问题无关,我也尝试使用:
android:radius="12dip"
Run Code Online (Sandbox Code Playgroud)
其次是
android:topLeftRadius="0dip"
android:topRightRadius="0dip"
Run Code Online (Sandbox Code Playgroud)
没有成功.
有人可以帮忙吗?谢谢!
这似乎是一个众所周知的问题.每个角落必须> 1,否则没有角落会变圆.根据Android文档,它可以完成,但它有点hacky:
注意:每个角必须(最初)提供大于1的角半径,否则没有角是圆角.如果你想要特定的角不被舍入,一个解决方法是使用android:radius来设置一个大于1的默认角半径,但是然后使用你真正想要的值覆盖每个角,提供零("0dp") )你不想要的地方>圆角.
请看这里:http: //developer.android.com/guide/topics/resources/drawable-resource.html#corners-element
改变这个:
<corners
android:bottomRightRadius="12dp"
android:bottomLeftRadius="12dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
Run Code Online (Sandbox Code Playgroud)
对此:
<corners
android:radius="1dp"
android:bottomRightRadius="12dp"
android:bottomLeftRadius="12dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
Run Code Online (Sandbox Code Playgroud)
它应该按预期工作.
我发现可能有一个错误,如果你设置单独的角,如果其中任何一个是0,那么所有的角都会变成0,所以最后我将其中两个设置为1dip,另外两个设置为我需要的任何值,因为没有一个它们是 0,所以 bug 不会影响它,结果看起来不错。
| 归档时间: |
|
| 查看次数: |
12186 次 |
| 最近记录: |