我有一个声明按钮背景的xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/selector_pressed" />
<item android:state_focused="true" android:drawable="@color/selector_focused" />
<item android:drawable="@android:color/transparent" />
</selector>
在我的手机上三星Nexus S(android 4.0.3),这个xml工作得很好,当我按下视图时背景颜色改变了。 但我在平板电脑上遇到了问题(三星Galaxy标签,Android 3.2),单击按钮但我没有看到背景的任何变化。平板电脑的背景颜色永远不会改变。
任何人都知道为什么这只发生在平板电脑上?我该如何解决这个问题?
答案 0 :(得分:6)
我遇到了同样的问题,但我设法解决了这个问题: 实际问题在于android 3.2中关于硬件加速的缺陷所以如果你在AndroidManifest中放入你的应用程序是hardwareAccelerated =“true”你的问题将会得到解决。
答案 1 :(得分:2)
我建议你调整每个布局文件夹的布局
并在每个布局上调用xml。可能是当它在平板电脑中被点击时,它没有正确显示,我曾经遇到过这个问题,因为尺寸或分辨率不匹配,所以颜色也没有正确显示。
答案 2 :(得分:1)
尝试摆脱
<item android:state_focused="true" android:drawable="@color/selector_focused" />
可能就是那个版本的操作系统截获按下和聚焦的方式。只是一个猜测,没有真正测试它。
尝试将.xml更改为:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#11223344" />
</shape>
</item>
<item>
<shape>
<solid
android:color="#AABBCCDD" />
</shape>
</item>
</selector>
你可以根据自己喜欢的颜色设置颜色。那就是你使用静态颜色。你也可以添加渐变和圆角边框。
答案 3 :(得分:0)
我用过:
android:hardwareAccelerated="false" in AndroidManifest.xml <application> tag
它工作得很好