按下按钮时应用不同的样式
有没有办法在按下按钮时将样式应用于按钮?
如果我在 style.xml 中有一个样式:
<resources>
<style name="test">
<item name="android:textStyle">bold</item>
</style>
</resources>
button.xml 中有一个选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/test_pressed"
style="@style/test"
android:state_pressed="true"/>
<item android:drawable="@drawable/test_focused"
android:state_focused="true"/>
<item android:drawable="@drawable/test_normal"/>
</selector>
那么我如何在布局中引用 button.xml?
<Button
...
android:???="button"/>
谢谢!
Is there a way to apply a style to a button when the button is pressed?
If I have a style in style.xml:
<resources>
<style name="test">
<item name="android:textStyle">bold</item>
</style>
</resources>
a selector in button.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/test_pressed"
style="@style/test"
android:state_pressed="true"/>
<item android:drawable="@drawable/test_focused"
android:state_focused="true"/>
<item android:drawable="@drawable/test_normal"/>
</selector>
then how would I reference button.xml in my layout?
<Button
...
android:???="button"/>
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
Romain Guy 认为这是不可能的:
http://code.google.com/p/android/问题/详细信息?id=8941
Romain Guy suggests it is not possible:
http://code.google.com/p/android/issues/detail?id=8941
您可以通过使用 XML 按钮定义来实现此目的。
在您的可绘制文件夹中创建一个 XML 文件,如下所示:
如您所见,这允许您定义不同的按钮图像以用于不同的状态(黑色按钮、绿色按钮等也应该是可绘制文件夹中的 .PNG 文件)
现在,从您的布局.xml 文件中,您只需将按钮背景设置为指向按钮选择器:
然后可以像任何图像文件一样从可绘制文件夹中引用选择器 XML。
You can achieve this by using an XML button definition.
Create an XML file in your drawable folder as follows:
As you can see this allows you to define different button images to use for the different states (black_button, green_button etc should be .PNG files in your drawable folder also)
Now, from your layout.xml file you can just set the button background to point to the button selector:
The Selector XML can then be referenced from teh drawable folder like any image file can.
您可以使用颜色状态列表资源
示例链接:
保存在 res/color/button_text.xml 的 XML 文件:
此布局 XML 会将颜色列表应用于视图:
You can make use of Color State List Resource
Example from link:
XML file saved at res/color/button_text.xml:
This layout XML will apply the color list to a View:
要更改单击/按下颜色时的 Android 按钮:
定义颜色值
要定义颜色值,您必须在项目值目录中创建colors.xml 文件并添加以下内容。
res/values/colors.xml
在Drawable目录中创建一个XML文件
在Drawable文件夹中创建一个button_background.xml文件,并添加按钮按下/单击、聚焦和默认颜色。 Button_background.xml 文件的最终代码如下所示。
res/drawable/button_background.xml
添加按钮
res/activity_main.xml
源 此处。
To Change Android Button on Click/Press Color :
Define Color Value
To define color value, you have to create colors.xml file in your project values directory and add following.
res/values/colors.xml
Create a XML File in Drawable Directory
Create a button_background.xml file in your drawable folder and add button pressed/clicked, focused and default color. Final code of button_background.xml file looks like this.
res/drawable/button_background.xml
Adding Buttons
res/activity_main.xml
Source here.
要引用选择器,您必须将其作为该按钮的背景。
对于按下时的粗体,我也没有尝试过,但也许您可以在选择器中提及文本样式,iso引用其中的样式:
如果这也不起作用,您可以在按钮的onClick()中执行此操作。
To refer to the selector, you must give it as the background for that Button.
And for Bold when pressed, I haven't tried it either, but maybe you can mention text style in your selector, i.s.o referring to a style from it:
If this also does not work, you can do it in button's onClick().
我还没有尝试过,但想必您可以在选择器中包含
android:id="button"
。I've not tried it but presumably you could just include
android:id="button"
in your selector.