栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android:在Adapter中的触摸事件上更新GridView中的图像

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android:在Adapter中的触摸事件上更新GridView中的图像

你之后

ImageView
开始处理的TouchEvent,它是唯一的视图允许这样做与触摸手势什么。您想
GridView
拦截TouchEvent,检查TouchEvent(
event.getX();event.getY()
)的X和Y坐标,并查看这些坐标是否在您的
ImageView
对象之一的范围内。如果是,请在
ImageView
或可以触发您的
setImageDrawable()
方法的标记上设置一个标志。我可以在一个项目中实现类似的效果,但是必须创建一个自定义GridView类(
publicclass yourGridView extends GridView
),然后重写以下内容:

@Override    public boolean onInterceptTouchEvent(MotionEvent event) {        int action = event.getAction();        switch(action) { case MotionEvent.ACTION_DOWN:     Log.i(AGL, "InterceptAction = DOWN");     break; case MotionEvent.ACTION_MOVE:     Log.i(AGL, "InterceptAction = MOVE");     break; case MotionEvent.ACTION_CANCEL:     Log.i(AGL, "InterceptAction = CANCEL");     return false;        }        return true;  //returning true tells your main Activity that you want the custom GridView to handle this TouchEvent; It will then send the TouchEvent to your GridView's onTouchEvent() method for handling.    }    @Override    public boolean onTouchEvent(MotionEvent event) {        int action = event.getAction();        switch(action) { case MotionEvent.ACTION_MOVE:     int xCoord = (int) event.getX();     int yCoord = (int) event.getY();     Log.i(AGL, "MOVE EVENT;" + "n" +  "Touch X = " + Integer.toString(xCoord) + "n" +     "Touch Y = " + Integer.toString(yCoord));     for(int i = 0; i < this.getChildCount(); i++) {         ImageView suspect = (ImageView) this.getChildAt(i);         if(suspect.getBounds().contains(xCoord, yCoord)) {  suspect.CHANGE_YOUR_IMAGE_HERE();  suspect.invalidate();         }     }     break;        }        return true;    }

请注意:getBounds()是我在自定义

ImageView
类中编写的一种方法。此方法返回一个Rect对象,该对象表示对象的边界框
ImageView
。您将必须使用自己的逻辑来获取您的的边界
ImageView

另请注意:当我在项目中运行此逻辑时,

ImageView
在触摸手势期间,我会快速更改图像。我还没有想出如何将其限制为每个MotionEvent.ACTION_MOVE一个图像更改。

我希望这有帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508046.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号