8

我有一个声明按钮背景的 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),单击了按钮,但我没有看到背景有任何变化。平板电脑的背景颜色永远不会改变。

任何人都知道为什么这只发生在平板电脑上?我该如何解决这个问题?

4

4 回答 4

6

我遇到了同样的问题,但我设法解决了这个问题:实际问题在于 android 3.2 中关于硬件加速的缺陷,所以如果你在 AndroidManifest 中输入你的应用程序是 hardwareAccelerated="true" 你的问题将得到解决.

于 2013-02-19T09:42:29.897 回答
2

我建议您调整每个布局文件夹的布局

并在每个布局上调用您的 xml。可能是在平板上点击的时候显示不正常,我也遇到过这个问题,因为尺寸或者分辨率不匹配,所以颜色也显示不正常。

于 2013-02-05T01:53:01.790 回答
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>

当然,您可以将颜色设置为您想要的任何颜色。也就是说,如果您使用的是静态颜色。您也可以为此添加渐变和圆角边缘以及边框。

于 2013-02-06T17:17:13.517 回答
0

我用了 :

android:hardwareAccelerated="false"  in AndroidManifest.xml <application> tag

它工作得很好

于 2018-09-24T12:50:28.897 回答