我正在使用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);
你知道我怎么能这样做,或者你有更好的想法? (应该很简单)。感谢。
答案 0 :(得分:0)
使用:
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)
}
});
答案 1 :(得分:0)
onTouch()来自View.OnTouchListener。当用户执行限定为触摸事件的操作时调用此方法,包括按下,释放或屏幕上的任何移动手势(在项目的范围内)。
所以你可以使用onTouchListener
:
iv1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// PRESSED
iv1.setImageResource(R.drawable.button_push);
return true; // if you want to handle the touch event
case MotionEvent.ACTION_UP:
// RELEASED
iv1.setImageResource(R.drawable.button_normal);
return true; // if you want to handle the touch event
}
return false;
}
});
这是一种更好的方法
您可以使用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>
现在在您的活动中(可能在onCreate()
内),您可以使用
iv1.setBackgroundResource(R.drawable.button_bg);
您可以在iv1.setOnClickListener()
内执行任何操作来处理点击事件。您现在无需担心在代码中设置后台资源。当您按下或关注按钮时,它会自动更改