Android实现图片浏览器示例
程序员文章站
2022-05-16 12:53:55
本文所述为一个基础的android图片浏览器代码,是仿写google原版实现的,代码中实现了主要的实现过程和方法,具体的完善还需要自己添加,代码中有很多注释,可帮助新手们快...
本文所述为一个基础的android图片浏览器代码,是仿写google原版实现的,代码中实现了主要的实现过程和方法,具体的完善还需要自己添加,代码中有很多注释,可帮助新手们快速理解代码,使用了部分图像资源。
主要功能代码如下:
package com.android.coding; import android.app.activity; import android.content.context; import android.os.bundle; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.adapterview.onitemselectedlistener; import android.widget.baseadapter; import android.widget.gallery; import android.widget.gallery.layoutparams; import android.widget.viewswitcher.viewfactory; import android.widget.imageswitcher; import android.widget.imageview; public class viewpicturesactivity extends activity { imageswitcher imageswitcher; //声明imageswitcher对象,图片显示区域 gallery gallery; //声明gallery对象,图片列表索引 int imageposition; //标记图片数组下标,用于循环显示 //声明图片整型数组 private int[] images = { r.drawable.image1,r.drawable.image2, r.drawable.image3,r.drawable.image4, r.drawable.image5,r.drawable.image6, r.drawable.image7,r.drawable.image8, r.drawable.image9,r.drawable.image10, r.drawable.image11,r.drawable.image12, r.drawable.image13,r.drawable.image14, r.drawable.image15,r.drawable.image16, r.drawable.image17}; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); //通过控件的id获得imageswitcher的对象 imageswitcher = (imageswitcher) findviewbyid(r.id.switcher); //设置自定义的图片显示工厂类 imageswitcher.setfactory(new myviewfactory(this)); //通过控件的id获得gallery的对象 gallery = (gallery) findviewbyid(r.id.gallery); //设置自定义的图片适配器 gallery.setadapter(new imageadapter(this)); //实现被选中的事件监听器 gallery.setonitemselectedlistener(new onitemselectedlistener() { @override public void onitemselected(adapterview<?> parent, view view, int position, long id) { //通过求余数,循环显示图片 imageswitcher.setimageresource(images[position%images.length]); } @override public void onnothingselected(adapterview<?> parent) { // todo auto-generated method stub } }); } //自定义图片适配器,继承baseadapter class imageadapter extends baseadapter{ private context context; //定义上下文 //参数为上下文的构造方法 public imageadapter(context context) { this.context = context; } //得到图片的大小 @override public int getcount() { //设置为整型的最大数 return integer.max_value; } //得到指定图片的对象 @override public object getitem(int position) { return null; } //得到指定图片的对象的id @override public long getitemid(int position) { return 0; } //显示图标列表 @override public view getview(int position, view convertview, viewgroup parent) { imageview iv = new imageview(context); //创建imageview对象 iv.setimageresource(images[position%images.length]); //设置循环显示图片 iv.setadjustviewbounds(true); //图片自动调整显示 //设置图片的宽和高 iv.setlayoutparams(new gallery.layoutparams(layoutparams.wrap_content,layoutparams.wrap_content)); return iv; //返回imageview对象 } } //自定义图片显示工厂类,继承viewfactory class myviewfactory implements viewfactory{ private context context; //定义上下文 //参数为上下文的构造方法 public myviewfactory(context context) { this.context = context; } //显示图标区域 @override public view makeview() { imageview iv = new imageview(context); //创建imageview对象 iv.setscaletype(imageview.scaletype.fit_center); //图片自动居中显示 //设置图片的宽和高 iv.setlayoutparams(new imageswitcher.layoutparams(layoutparams.fill_parent,layoutparams.fill_parent)); return iv; //返回imageview对象 } } }
本文所述仅为其主要功能代码部分,读者可以对其进一步加以完善。由图像查看器还可以扩展出很多实用的android图像操作功能,这些都是作为一个android应用开发新手应该搞定的技巧。