android - Android 中按钮(资源处理)的状态维护?

标签 android button selector drawable

我已经实现了使用选择器 XML 组件来维护按钮的状态。例如,请参阅代码 fragment 。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--  Non focused states 
  -->
    <item android:state_focused="false" android:state_selected="false"
        android:state_pressed="false" android:drawable="@drawable/back_arrow_normal" />
    <item android:state_focused="false" android:state_selected="true"
        android:state_pressed="false" android:drawable="@drawable/back_arrow_hover" />
    <!--  Focused states 
  -->
    <item android:state_focused="true" android:state_selected="false"
        android:state_pressed="false" android:drawable="@drawable/back_arrow_hover" />
    <item android:state_focused="true" android:state_selected="true"
        android:state_pressed="false" android:drawable="@drawable/back_arrow_hover" />
    <!--  Pressed 
  -->
    <item android:state_pressed="true" android:drawable="@drawable/back_arrow_hover" />
</selector>

使用这个想法,我们应该至少有两张图片。如果我在一个项目中有十个按钮,那么我应该在可绘制资源中有二十张图像。为了使应用程序支持多种密度/屏幕尺寸,我需要 60 (20X3) 张图像。

我有两种想法,但不知道如何实现。它们是:

  1. 我们必须定义一个方法而不是选择器文件。
  2. 我们应该有一个单一的图像,我们需要像 iPhone 一样改变 alpha 值。

是否还有其他最需要的好点子。因为这会增加应用程序的大小。

请发表您的想法和想法。

最佳答案

我想,您的按钮背景并不太复杂。如果不是,那么您可以使用 9-patch png,因此,可绘制对象的数量将减少到只有一组。 9 补丁 png 将根据需要调整大小和缩放。

但是,如果背景很复杂,则每个分辨率都需要多个资源。

关于android - Android 中按钮(资源处理)的状态维护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6175774/

相关文章:

android - 我尝试使用的几乎所有 AppCompat v21 小部件都出现错误

javascript - 按下按钮后停止和启动动画(Javascript)

html - Twitter Bootstrap 按钮下拉菜单在 IE9 中不起作用

Android:通过单击按钮将文本添加到不同 xml 布局中的 TextView

android:删除 ListView 选择器

iOS: class_addMethod 添加的类方法不能被 NSInvocation 使用

java - 如何在android中解压包含图像的Zip文件而不丢失任何图像?

android - 如何将复选框绑定(bind)到图像

java - 为什么 onClick 布局 XML 引用的方法需要公开?

multithreading - Cocoa-UI : Delayed performSelector . ...延迟