GridView(ImageViews):setOnTouchListener 和 setOnItemClickListener 实现
GridView (of ImageViews) : setOnTouchListener and setOnItemClickListener implementation
目前我有一个包含一些 ImageView 的 GridView。 GridView 实现了 setOnItemClickListener。当 onItemClick 发生时,用户会得到一个对话框,然后按下或关闭,他 returns 到当前的 GridView。
到目前为止一切正常。
我想知道是否有办法更改选定的 imageView(使用另一个图像,甚至只是 alpha)。
我曾尝试在 setOnItemClickListener 中更改图像,但是当我在 dialog.dismiss() 调用后尝试将其更改回正常图像时,会弹出几毫秒的白屏。虽然图像设置正确,但我想避免这种白色图像。
我已经尝试实现 GridView.setOnTouchListener,但我只会得到一个白屏(几毫秒)并且不会执行其他操作(没有弹出对话框)。
我什至尝试在 ViewHolder class 中实现 OnTouchListener,尽管它似乎解决了一些问题(更改 ACTION_DOWN 上的 alpha 是永久性的,因此我不得不重新选择相同的项目以将 alpha 改回正常),setOnItemClickListener 根本不起作用。
有人可以帮我解决这个问题吗?
提前致谢!
对于遇到同样问题的人,我使用了 TransitionDrawable。在我的 imageAdapter 中,我加载了转换 xml 个文件:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/soft"/>
<item android:drawable="@drawable/soft_pressed"/>
</transition>
以及 gridview.setOnItemClickListener,我使用了这个代码示例:
ViewHolder holder = (ViewHolder) v.getTag();
final ImageView imageview = holder.image;
((TransitionDrawable)imageview.getDrawable()).startTransition(2000);
并执行下一条命令(需要一些延迟):
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
YourMethod(...);
//reverse the transition
((TransitionDrawable)imageview.getDrawable()).reverseTransition(2000);
}
}, 2000);
目前我有一个包含一些 ImageView 的 GridView。 GridView 实现了 setOnItemClickListener。当 onItemClick 发生时,用户会得到一个对话框,然后按下或关闭,他 returns 到当前的 GridView。 到目前为止一切正常。
我想知道是否有办法更改选定的 imageView(使用另一个图像,甚至只是 alpha)。
我曾尝试在 setOnItemClickListener 中更改图像,但是当我在 dialog.dismiss() 调用后尝试将其更改回正常图像时,会弹出几毫秒的白屏。虽然图像设置正确,但我想避免这种白色图像。
我已经尝试实现 GridView.setOnTouchListener,但我只会得到一个白屏(几毫秒)并且不会执行其他操作(没有弹出对话框)。
我什至尝试在 ViewHolder class 中实现 OnTouchListener,尽管它似乎解决了一些问题(更改 ACTION_DOWN 上的 alpha 是永久性的,因此我不得不重新选择相同的项目以将 alpha 改回正常),setOnItemClickListener 根本不起作用。
有人可以帮我解决这个问题吗? 提前致谢!
对于遇到同样问题的人,我使用了 TransitionDrawable。在我的 imageAdapter 中,我加载了转换 xml 个文件:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/soft"/>
<item android:drawable="@drawable/soft_pressed"/>
</transition>
以及 gridview.setOnItemClickListener,我使用了这个代码示例:
ViewHolder holder = (ViewHolder) v.getTag();
final ImageView imageview = holder.image;
((TransitionDrawable)imageview.getDrawable()).startTransition(2000);
并执行下一条命令(需要一些延迟):
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
YourMethod(...);
//reverse the transition
((TransitionDrawable)imageview.getDrawable()).reverseTransition(2000);
}
}, 2000);