【发布时间】:2014-02-16 16:19:14
【问题描述】:
我有一个看起来符合Theme.Holo.Light 的按钮。我曾经通过将其背景设置为以下来圆角:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle" >
<corners
android:bottomLeftRadius="15dp"
android:bottomRightRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
</shape>
现在Button 变得透明了。我尝试创建一个选择器,添加一个solid 属性并使用其中的两个drawables 用于正常和按下状态,但我无法复制Holo.Light 主题的默认Button 行为。因此,我正在寻找 2 种可能的解决方案:要么以某种方式绕过 Button 的角而不影响其默认样式,要么找到定义上述样式的 XML,以便我可以复制它。我一直在查看 SDK 内部并使用此参考:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml 但没有成功。
任何想法如何制作圆角Button 但将所有其他外观属性保持为默认值?
【问题讨论】:
-
也许使用一些 9 个补丁会有所帮助。
-
@ArtooDetoo 为什么?我不需要任何自定义背景,我只需要将按钮的角变圆,并将所有其他内容保持为默认值
-
与您尝试使用 xml 可绘制对象的原因相同:获得圆角。
-
@ArtooDetoo 我可以圆角,但默认背景会变得很多。使用 9 补丁将导致完全相同
-
没有。 9 补丁不必是透明的。原始 style (不是主题,因为您的问题中错误地链接了)使用 9 个补丁。如果您阅读THIS 文档并搜索 btn_default(从第 1552 行开始),您将学习如何制作一种覆盖标准可绘制对象(9 个补丁)的样式。然后只需将原始艺术作品复制到您应用的可绘制文件夹并圆角即可。
标签: android android-layout android-button