GridView(of ImageViews):setOnTouchListener和setOnItemClickListener实现

时间:2017-02-28 16:52:42

标签: android gridview ontouchlistener onitemclicklistener

目前我有一个GridView,它包含一些ImageView。 GridView实现了setOnItemClickListener。当onItemClick发生时,用户得到一个对话框,在按下或关闭时,他返回当前的GridView。 直到现在一切正常。

我想知道是否有办法更改所选的imageView(使用其他图像,甚至只是alpha)。

我已经尝试在setOnItemClickListener中更改图像,但是当我尝试在dialog.dismiss()调用之后将其更改回正常图像时,会弹出一个白色的屏幕,持续几毫秒。虽然图像设置正确,但我想避免使用此白色图像。

我试图实现GridView.setOnTouchListener,但我只得到一个白色的屏幕(几毫秒)并且不会执行任何其他操作(没有弹出对话框)。

我甚至尝试在ViewHolder类中实现OnTouchListener,虽然它似乎有一些问题(在ACTION_DOWN上更改alpha是永久性的,所以我不得不重新选择相同的项目以将alpha更改回正常状态),setOnItemClickListener根本不会工作。

有人可以帮我吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

对于有同样问题的人,我使用了TransitionDrawable。在我的imageAdapter中,我加载了转换xml文件:

SingleInstance

并在gridview.setOnItemClickListener上,我使用了以下代码示例:

<?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>

执行下一个命令(需要一些延迟):

ViewHolder holder = (ViewHolder) v.getTag();
final ImageView imageview = holder.image;
((TransitionDrawable)imageview.getDrawable()).startTransition(2000);