为android无边框按钮添加样式(android 4.0+;)
我想向无边框按钮添加边框。但是,如果我使用父无边框按钮创建自己的样式,并覆盖背景标记,则会丢失状态更改动画等,因为这也是由背景定义的。我也不能自己实现它们,因为原生android drawables不能作为公共资源使用,因此无法访问。我不想复制可提取的内容。 是否只能通过编程方式覆盖ondraw,还是缺少基于xml的解决方案? (顺便说一句,这是一个周期表,所以这不应该包括每个按钮都有一个xml文件,因为大约有100个按钮) 谢谢为android无边框按钮添加样式(android 4.0+;),android,android-layout,button,styles,android-xml,Android,Android Layout,Button,Styles,Android Xml,我想向无边框按钮添加边框。但是,如果我使用父无边框按钮创建自己的样式,并覆盖背景标记,则会丢失状态更改动画等,因为这也是由背景定义的。我也不能自己实现它们,因为原生android drawables不能作为公共资源使用,因此无法访问。我不想复制可提取的内容。 是否只能通过编程方式覆盖ondraw,还是缺少基于xml的解决方案? (顺便说一句,这是一个周期表,所以这不应该包括每个按钮都有一个xml文件,因为大约有100个按钮) 谢谢 stephan这其中大部分来自 有一个4步的过程来做这样的事情:
stephan这其中大部分来自 有一个4步的过程来做这样的事情:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/loc_for_button_disabled" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/loc_for_button_pressed" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/loc_for_button_focused" />
<item
android:state_enabled="true"
android:drawable="@drawable/loc_for_button_enabled" />
</selector>
一个简单的方法是将您的按钮放置在一个单独的布局中,例如
线性布局
,并为该布局提供背景色和填充,例如1dp。这将在按钮周围呈现“边框”。注意,这在布局方面是相当昂贵的,所以当你有很多按钮时不要使用这种方法
正确的解决方案是为所有州创建一个可绘制列表,并使用可绘制列表构建一个可绘制状态列表,并将此可绘制状态列表指定为按钮的背景。事实上,这并不是很多工作,只要看看如果它是周期表,那么也许你应该使用网格视图。它支持项目之间的行。原始图像可以通过SDK保存。您需要一个具有正确结构的xml文件,Android可以从中获取正确状态的图片。