Android 单击“视觉状态更改”按钮

Android 单击“视觉状态更改”按钮,android,forms,animation,button,Android,Forms,Animation,Button,有没有办法在Android中设置一个按钮的动画,当你点击它时,它会将按钮的背景变成一个按下的图像 我只使用background属性在表单按钮上显示图像。使用此XML:将其保存在drawable文件夹中并设置为background drawable <?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <

有没有办法在Android中设置一个按钮的动画,当你点击它时,它会将按钮的背景变成一个按下的图像


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

使用此XML:将其保存在drawable文件夹中并设置为background 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>

是的,有。实现onTouchListener。在onTouch方法中使用MotionEvent变量(比如event)编写以下代码:

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

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


有关选择器的更多信息,请阅读此处:

在您的res/drawable文件夹中添加一个xml文件名称按钮\u 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\u pressed=“false”?我在没有它的情况下进行了测试,仍然有效。性能能比检查两种状态更好吗?从这个意义上说,动画是误导性的,因为没有真正的“动画”,只有状态变化的反映。(我之所以这么说,是因为我试图实际制作一个按钮的动画,而这个线程根本没有帮助!)