Gallery中如果是要响应某一视图的点击事件只要设置setOnItemClickListener即可。通常的照片浏览不会有复杂的交互处理逻辑。但是如果gallery的视图不是简单的一张照片而是复杂的视图(Gallery的灵活应用将会为您带来很多的便利)。如需要模仿多屏切换的桌面效果(如android桌面的workspace效果),除了使用ViewFlipper或从android源码中提取workspace,gallery也是个相当好的替代方法。gallery原有的切换动画效果和其成熟稳定性,总比自己造轮子的风险小。
当Gallery内的视图是一个复杂的布局时,总避免不了屏幕内的子视图需要去接管touch、click等事件。遗憾的是如果Gallery的视图自己处理了OnClickListener则会导致gallery不能拨动。就如ScrollView遇到ListView不能滚动一样的问题,应该是这2个控件在设计上的一个缺陷。本文探讨类似冲突的一种解决方案。
之所以会出现 Gallery内的视图处理了OnClickListener事件后不能拨动,是因为子视图接管了touch事件后而未返回给gallery处理。所以解决的办法很简单:在子视图处理完touch事件后再让gallery处理即可。
下面借上一篇<<whatsnew界面>>的实例来讲解,核心的代码如下:
gallery.setAdapter(new ArrayAdapter<Integer>(ctx, 0, WHATSNEW) {
public View getView(int position, View convertView, final ViewGroup parent) {
ImageView image = null;
if (convertView == null) {
image = new ImageView(getContext()){
public boolean onTouchEvent(MotionEvent event) {
boolean b=super.onTouchEvent(event);
//提交给gallery处理
gallery.onTouchEvent(event);
return b;
}
};
image.setScaleType(ScaleType.FIT_XY);
image.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
} else {
image = (ImageView) convertView;
}
//处理自己的事件
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(ctx, "you click me!", Toast.LENGTH_LONG).show();
}
});
image.setBackgroundColor(Color.BLACK);
image.setImageResource(WHATSNEW[position]);
return image;
}
});
同理,当ScrollView遇到ListView时只要用这种方法即可!
分享到:
相关推荐
Gallery可以为左右滑动提供快速开发,但是有一个缺点就是当设置Gallery的Item点击事件时,其左右滑动就不灵了。
利用Gallery所写的视图,可以左右滑动选取图片,采用UTF—8的格式
1.gallery循环 2.java反射机制获取图片 3.可以从gallery中删除图片 初学必看。。
当ScrollView嵌套Gallery时,ScrollView与Gallery事件就会冲突,此时只有重要Gallery的事件分发函数。 首先记录按下时的坐标,监听滑动的坐标,距离大于一个值则属于滑动事件,如果小于这个值则属于点击事件。这个值...
这是一个简单的Gallery视图演示项目,帮助你学习,如何创建自己的Gallery应用如android Gallery
Gallery中可拖动itemView例子
主要为大家详细介绍了Android高级组件Gallery画廊视图的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
使用Fragment +ViewPager 框架 并且解决ViewPager与Gallery 的事件冲突
Gallery图片叠层处理和图片轮训模糊处理.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
有时候我们需要在ListView中嵌入一些控件,比如说Gallery,该Demo就可以完成这个功能。
Gallery图片叠层处理和图片轮训模糊处理.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Gallery控件是个很不错的看图控件,大大减轻了开发者对于看图功能的开发,而且效果也比较美观。本文介绍Gallery的用法,用反射机制来动态读取资源中的图片。
画廊Gallery能够水平方向显示内容,并且可用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,并且可用影响事件显示信息。在使用画廊视图时,首先在屏幕上添加Gallery组件。使用画廊视图,也需要使用...
在上图页面中出现WARNING警告是因为我们没有新建子目录,所以,这里你要输入在步骤1中创建的目录,然后选择创建的页面或文章把代码[lg_gallery]放到页面。 页面中还有许多其它的设置,你可以输入其它选项的内容,...
gallery中放webview
实现Android中gallery图片自动切换。
android 动态向Gallery中添加图片及倒影&&3D;效果 实现了gallery倒影及3D翻转效果
HorizontalScrollView 是一种 框架布局, 这意味着你可以将包含要滚动的完整内容的子视图放入该容器; 该子视图本身也可以是具有复杂层次结构的布局管理器。一般使用横向的 LinearLayout 作为子视图,使用户可以滚动...
NextGEN Gallery简体中文包