8

我想使用我为我的应用程序绘制的自定义按钮图像,但这样做我需要使用不同的图像来显示按钮的焦点,而另一个图像则用于按下按钮。

我遇到了选择器标签,但由于某种原因它不喜欢它。Eclipse 抱怨“渲染库损坏”。我得到的错误是这样的:

Broken rendering library; unsupported DPI. Try using the SDK manager to get updated.

我有,我已经更新了超过 10 的每个 API。如果重要的话,我的目标 API 是 15,我的编译 API 是 17。

如果我不能让它工作,我可以简单地使用 Button 标记,并可能在 Java src 代码或其他东西中更改它吗?

4

2 回答 2

0

而不是按钮,创建 ImageView 并在单击图像时执行必要的操作。

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="Method_Name"
        android:src="@drawable/selector" >
    </ImageView>

另外为了在点击和聚焦时提供不同的图像,在drawable文件夹中创建selector.xml并将imageview的背景设置为选择器文件。

选择器.xml

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

     <item android:drawable="@drawable/image1"  android:state_focussed="true" />
     <!-- Inactive tab -->
    <item android:drawable="@drawable/image2"  android:state_pressed="true" />
     <!-- Pressed tab -->


     </selector>

希望对你有帮助!

于 2013-10-29T09:28:12.573 回答
0

使用这样的自定义布局

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

    <item android:state_focused="true" android:drawable="@drawable/focus"></item>

    <item android:drawable="@drawable/normal"></item>
</selector>

另请注意,选择器应以这种特殊方式定义,否则它们会出现问题。即

1)state_pressed
2)state_focused ( work only if you scroll to that button using the hardware key)
3)drawable i.e. normal

如果您更改了选择器的顺序,那么它将不起作用。记住它的一种简单方法是可视化 qwerty 电话 - 首先我看到按钮 ( normal),然后使用箭头键 ( state_focused) 移动到该特定按钮,然后我按下该按钮 ( state_pressed)。现在把它们倒过来写。

于 2013-06-07T03:37:56.410 回答