Java 如何制作按钮动画(使用ImageVew)?

Java 如何制作按钮动画(使用ImageVew)?,java,android,eclipse,Java,Android,Eclipse,我正在使用Eclipse、java和android aps 如何在ImageView上执行推送效果?我正在使用GridView和setOnItemClick。 我要做这样的事情: iv1.setImageResource(R.drawable.button_push); //here i want to use any SLEEP function or something (but I dont want freeze app effect) iv1.setImageResource(R.dr

我正在使用Eclipse、java和android aps

如何在ImageView上执行推送效果?我正在使用GridView和setOnItemClick。 我要做这样的事情:

iv1.setImageResource(R.drawable.button_push);
//here i want to use any SLEEP function or something (but I dont want freeze app effect)
iv1.setImageResource(R.drawable.button_normal);
你知道我该怎么做,或者你有更好的主意?它应该很简单。谢谢。

使用:

iv1.post(new Runnable{
    public void run(){
       iv1.setImageResource(R.drawable.button_push);
       //here i want to use any SLEEP function or something (but I dont want freeze app effect)
    }
});
根据

onTouch From View.OnTouchListener。当用户在屏幕上执行符合触摸事件条件的操作(包括按下、释放或项目范围内的任何移动手势)时,将调用此函数

因此,您可以使用onTouchListener:

这里有一个更好的方法

您可以使用drawable选择器来更改按钮的显示状态,而不是使用OnTouchListener

在res/drawable中创建选择器xml文件,例如button_bg.xml

<?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/button_push" /> <!-- pressed -->
<item android:state_focused="true"
   android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

你可以在iv1.setOnClickListener中做任何你想做的事情来处理点击事件。你现在不必费心在代码中设置背景资源。当你的按钮被按下或聚焦时,它会自动相应地改变。

但是如果我使用GridView来处理动态图像视图,那怎么办?GridView是否可以使用OnTouchListener?或者我必须使用OnItemClick listener?请查看我的编辑。使用第二种解决方案应该可以有效地解决您的问题。谢谢您,但我正在努力尝试,但对我无效:,可能我做错了什么,或者该方法对GridView不起作用?当我在GridView上按ImageView时,没有效果。我试图在一个XML文件中设置android:background=blabla,但没有效果。啊,我知道,我与setbackgroundresource:D发生冲突,我删除了backgruindresource,现在它工作正常了!谢谢你。这对你来说很有效。请接受这个答案,这样别人就可以从中受益。如果它对你有帮助,那么请考虑一下投票。
<?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/button_push" /> <!-- pressed -->
<item android:state_focused="true"
   android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
iv1.setBackgroundResource(R.drawable.button_bg);