【问题标题】:Button on click visual state change按钮点击视觉状态改变
【发布时间】:2012-05-12 15:14:47
【问题描述】:

有没有办法在 Android 中为按钮设置动画,以便在单击它时将按钮的背景更改为按下的图像?

我只是使用背景属性在表单按钮上显示图像。

【问题讨论】:

  • 这种意义上的动画具有误导性,因为没有真正的“动画”本身,而只是状态变化的反映。 (我这么说是因为我正在尝试为按钮设置动画,而这个线程根本没有帮助!)

标签: android forms animation button


【解决方案1】:

使用此 XML:将其保存在 drawable 文件夹中并设置为背景可绘制对象。

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

【讨论】:

    【解决方案2】:

    在您的 res/drawable 文件夹上添加一个 xml 文件,将其命名为 button_selector.xml 还放置两个可绘制的,一个用于按下状态,另一个用于未按下或正常状态。最后添加这两个你的 xml 文件按钮选择器,一切都应该工作!不要忘记将 @drawable/bytton_selector.xml 设置为 main.xml 文件中按钮的背景。

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

    【讨论】:

    • 它的作品,但我想知道为什么 android:state_pressed="false" 不需要?我在没有它的情况下进行了测试,仍然可以工作..性能会比检查两个状态更好吗?
    【解决方案3】:

    是的,有。实现 onTouchListener。在 onTouch 方法中使用 MotionEvent 变量(让我们说事件)这样写:

    if (event.getAction() == MotionEvent.ACTION_DOWN){
        /*Code*/
    }
    if (event.getAction() == MotionEvent.ACTION_UP){
        /*Code*/
    }
    

    【讨论】:

      【解决方案4】:

      您应该做的是创建一个selector(Krishnakant Dalal 所说的)。 它处理 UI 元素在每个状态下的外观(按下、禁用、正常等)

      有关选择器的更多信息,请阅读此处:http://android-journey.blogspot.com/2009/12/android-selectors.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多