我想使用我为我的应用程序绘制的自定义按钮图像,但是这样做我需要使用不同的图像来处理聚焦的按钮,而另一个则按下它。
我遇到了选择器标签但由于某种原因它不喜欢它。 Eclipse抱怨“渲染库已损坏”。我得到的错误是:
Broken rendering library; unsupported DPI. Try using the SDK manager to get updated.
我有,我已经更新了每个过去10的API。如果重要,我的目标API是15,我的编译API是17。
如果我无法使用它,我可以简单地使用Button标签,也许可以在Java src代码中更改它吗?
答案 0 :(得分: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>
还要注意选择器应该以这种特定方式定义,否则它们会产生问题.i.e。
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
)移动到该特定按钮,然后按下该按钮({{ 1}})。现在把它们写回来。
答案 1 :(得分: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的背景设置为选择器文件。
selector.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>
希望这会对你有帮助!