如何使按钮的角变圆,但保留其默认外观



我有一个根据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 属性并将其中 2 个这样的drawables用于正常和按下状态,但我无法复制Holo.Light主题的默认Button行为。所以我正在寻找 2 种可能的解决方案:要么以某种方式绕过按钮的角落而不影响其默认样式,要么找到定义上述样式的 XML,以便我可以复制它。我一直在查看 SDK 内部并使用以下参考:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml 但没有成功。

任何想法如何使圆角Button但将所有其他外观属性保留为默认值?

原始样式使用 9 个补丁。
如果您阅读本文档并搜索btn_default(从第 1995 行开始),您将学习如何制作覆盖标准可绘制对象(9 个修补程序)的样式。
然后,只需将原始图稿复制到应用的可绘制文件夹并绕到它们的角落即可。

它们将在状态列表可绘制对象(称为 btn_default_holo_light.xml

如果你使用的是Windows,它在这里:C:\Your_Path_To_Eclipse\sdk\platforms\android-XY\data\res\drawable,其中XY是11到19(取决于你的minSdkVersion)

还有这里的 9 个补丁:C:\Your_Path_To_Eclipse\sdk\platforms\android-XY\data\res\drawable-RES,其中 XY 是 11 到 19(取决于您的 minSdkVersion),RES 是特定的 dpi 分辨率(mdpi,作为参考)

最新更新