如何圆角按钮但保持其默认外观

时间:2014-02-16 16:19:14

标签: android android-layout android-button

我有一个按照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用于普通和按下状态,但我无法复制Button的默认Holo.Light行为主题。所以我正在寻找两种可能的解决方案:要么以某种方式围绕Button的角落而不影响其默认样式,要么找到定义所提及样式的XML,以便我可以复制它。我一直在查看SDK内部并使用此引用:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml但未成功。

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

1 个答案:

答案 0 :(得分:1)

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

它们将在StateList drawable中引用,名为 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,作为参考)