Android开发点点滴滴——Gallery的使用

原创 2013年12月02日 11:39:44

Gallery视图和之前用到的Spinner视图,ListView视图等很类似,操作也异曲同工,都是需要Adapter来和数据源匹配起来。

基本上都是使用继承BaseAdapter来实现。

看着教程做的时候,发现设置了 没有选中列表项的透明度为0.6(选中的为1) 但是程序首次运行,显示正常,但是当滑动一次后,所有的列表项都变为透明的,上网查找,才发现,没有设置显示图片的背景/背景色,设置背景色为黑色后,一切正常。

xml代码

    <Gallery
        android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="30dp"
        android:spacing="3pt"
        android:unselectedAlpha="0.6" />

java代码

Gallery gallery;
	int[] imageIds=new int[]
			{
					R.drawable.ic_launcher,
					R.drawable.ic_launcher,
					R.drawable.ic_launcher,
//					R.drawable.ic_launcher,
//					R.drawable.ic_launcher,
//					R.drawable.ic_launcher,
//					R.drawable.ic_launcher
			}
			;
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_test_gallery);
		gallery=(Gallery)findViewById(R.id.gallery);
		BaseAdapter adapter=new BaseAdapter()
		{
			
			@Override
			public View getView(int position, View convertView, ViewGroup parent)
			{
				ImageView imageView=new ImageView(TestGalleryActivity.this);
				imageView.setImageResource(imageIds[position%imageIds.length]);
				imageView.setScaleType(ImageView.ScaleType.FIT_XY);
				imageView.setLayoutParams(new Gallery.LayoutParams(75,100));
				imageView.setBackgroundColor(Color.BLACK);
				
				return imageView;
			}
			
			@Override
			public long getItemId(int position)
			{
				// TODO Auto-generated method stub
				return position;
			}
			
			@Override
			public Object getItem(int position)
			{
				// TODO Auto-generated method stub
				return position;
			}
			
			@Override
			public int getCount()
			{
				// TODO Auto-generated method stub
				return imageIds.length;
			}
		};
		
		gallery.setAdapter(adapter);
		
	}


主要就是getVIew中 imageView.setBackgroundColor(Color.BLACK); 以上只是一个简单的例子。
事件触发的监听器和其他视图都类似。
Gallery视图可以在一行显示多张图片(或其他信息),而且支持水平拖动,也就是说不需要再额外增加水平滚动条。貌似只能让最中间一个列表项作为选中的项,这样只能实现特定功能,不好控制。但是作为图片浏览很是有很多其他创意的,比如网上可以找到3D显示等等。

Gallery视图已过期,网上牛人解释是:不能通过它的适配器(Adapter)合适的使用convertView,也就是说在绘制一个展示时,不得不为每个item创建一个新的视图。(Gallery不能回收视图,浪费资源)

相关文章推荐

Android开发点点滴滴——使用HttpURLConnection发送get和post请求

android和PC通信,http方式是必不可少的,如何使用android来实现发送http请求,并且得到http的回复消息呢? 可以使用HttpURLConnection,来实现: 1.发送get请...
  • zhd320
  • zhd320
  • 2013年10月29日 16:19
  • 855

Android开发点点滴滴——软引用缓存图片和异步加载

1.软引用 Java中的SoftReference即对象的软引用。如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,...
  • zhd320
  • zhd320
  • 2013年10月11日 16:47
  • 956

Android开发点点滴滴——ListView

初学android,感觉ListView组件用的广泛,也挺难的。下面是自己碰的问题 1.基于数组的ListView 需要通过ArrayAdpter来提供表项 ... array[i]=curs...
  • zhd320
  • zhd320
  • 2013年05月10日 12:23
  • 832

Android开发点点滴滴——ListView(续)

1.自定义ListView 重载BaseAdapter 之前在使用ListView时,基本上选用的android已有的适配器(Adapter),优点是:对于简单的实现一些功能来说,用起来比较方便简单...
  • zhd320
  • zhd320
  • 2013年10月11日 11:20
  • 660

Android开发点点滴滴——事件处理

事件处理,顾名思义就是当具体某件事件发生时,将会做出的怎样的反应。以前使用MFC编程,知道window是事件驱动的,比如点击一个按钮,就会触发一个事件(前提是触发的事件和处理函数已绑定)然后执行一个函...
  • zhd320
  • zhd320
  • 2013年10月31日 16:42
  • 491

android开发中使用setContentView和LayoutInflater的点点滴滴

晚上完成。

Android开发点点滴滴

本文在不断更新中。。。。 1.字符串比较 我在获取EditText中的内容时,初始时得到的是"",然后我直接判断edittextString=="",结果怎么都跳入,记得MFC中比较好像可以直接这...
  • zhd320
  • zhd320
  • 2013年05月09日 11:22
  • 986

关于Android开发Gallery的应用

  • 2013年06月09日 15:08
  • 1.27MB
  • 下载

Android初级开发(四)——补充7、Gallery(画廊)的使用

Gallery的学习和使用

android开发之gallery(画廊)

一、结构 public class Gallery extends AbsSpinner implements GestureDetector.OnGestureListener java.la...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发点点滴滴——Gallery的使用
举报原因:
原因补充:

(最多只允许输入30个字)