【问题标题】:Android Button with Text with different images for Enabled and PressedAndroid Button with Text with different images for Enabled and Pressed
【发布时间】:2015-08-28 06:30:25
【问题描述】:

我正在尝试通过以下代码创建一个有状态的 Button,其顶部有 TextImage

<Button
android:id="@+id/btnMultiplayer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/multiplayer"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:text="Multiplayer"/>

得到这个:

但是,当按下图像时,我找不到更改顶部可绘制对象的方法。

我尝试将android:drawableTop 设置为@drawable/multiplayer_stateful,其中@drawable/multiplayer_stateful 是:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawableTop="@drawable/multiplayer" android:state_enabled="true" android:state_window_focused="false"/>
<item android:drawableTop="@drawable/multiplayer_pressed" android:state_pressed="true"/>

</selector>

但这不起作用。 (注意@drawable/multiplayer和@drawable/multiplayer_pressed是png文件)

有什么建议吗?

【问题讨论】:

  • 谢谢。正如我在问题中提到的,我正在尝试同样的事情,但它没有显示图像。我做错了什么?
  • 我意识到我没有在我的选择器语句中使用android:dither="true"。当我添加它时,它起作用了。如果您可以将此作为答案发布,并解释为什么需要dither,我可以接受它作为答案。

标签: android image button drawable


【解决方案1】:

你必须使用android:dither = "true"

试试这个。

<?xml version="1.0" encoding="utf-8"?>
<selector 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:dither="true" >

<item android:drawableTop="@drawable/multiplayer" android:state_enabled="true" android:state_window_focused="false"/>
<item android:drawableTop="@drawable/multiplayer_pressed" android:state_pressed="true"/>

</selector>

来自 Android 文档:

如果位图不抖动,则启用或禁用位图抖动 具有与屏幕相同的像素配置(例如:ARGB RGB 565 屏幕的 8888 位图)。

必须是布尔值,“真”或“假”。

这也可能是对资源的引用(形式为 “@[package:]type:name”)或主题属性(形式为 "?[package:][type:]name") 包含此类型的值。

抖动会影响对精度高于设备的颜色进行下采样的方式。没有抖动通常更快,但精度更高的颜色会被截断(例如 8888 -> 565)。抖动尝试分配此过程中固有的错误,以减少视觉伪影。

希望对你有帮助!

【讨论】:

    【解决方案2】:

    在选择器中启用抖动属性。

    android:dither

    布尔值。如果位图与屏幕的像素配置不同(例如:ARGB 8888 位图和 RGB 565 屏幕),则启用或禁用位图抖动。 更多详情请参考此链接:http://developer.android.com/guide/topics/resources/drawable-resource.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 2014-10-22
      • 2012-03-14
      • 2012-01-16
      相关资源
      最近更新 更多