Android实现图片浏览器示例
本文所述为一个基础的Android图片浏览器代码,是仿写Google原版实现的,代码中实现了主要的实现过程和方法,具体的完善还需要自己添加,代码中有很多注释,可帮助新手们快速理解代码,使用了部分图像资源。
主要功能代码如下:
packagecom.android.coding; importandroid.app.Activity; importandroid.content.Context; importandroid.os.Bundle; importandroid.view.View; importandroid.view.ViewGroup; importandroid.widget.AdapterView; importandroid.widget.AdapterView.OnItemSelectedListener; importandroid.widget.BaseAdapter; importandroid.widget.Gallery; importandroid.widget.Gallery.LayoutParams; importandroid.widget.ViewSwitcher.ViewFactory; importandroid.widget.ImageSwitcher; importandroid.widget.ImageView; publicclassViewPicturesActivityextendsActivity{ ImageSwitcherimageSwitcher;//声明ImageSwitcher对象,图片显示区域 Gallerygallery;//声明Gallery对象,图片列表索引 intimagePosition;//标记图片数组下标,用于循环显示 //声明图片整型数组 privateint[]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 publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); //通过控件的ID获得imageSwitcher的对象 imageSwitcher=(ImageSwitcher)findViewById(R.id.switcher); //设置自定义的图片显示工厂类 imageSwitcher.setFactory(newMyViewFactory(this)); //通过控件的ID获得gallery的对象 gallery=(Gallery)findViewById(R.id.gallery); //设置自定义的图片适配器 gallery.setAdapter(newImageAdapter(this)); //实现被选中的事件监听器 gallery.setOnItemSelectedListener(newOnItemSelectedListener(){ @Override publicvoidonItemSelected(AdapterView<?>parent,Viewview, intposition,longid){ //通过求余数,循环显示图片 imageSwitcher.setImageResource(images[position%images.length]); } @Override publicvoidonNothingSelected(AdapterView<?>parent){ //TODOAuto-generatedmethodstub } }); } //自定义图片适配器,继承BaseAdapter classImageAdapterextendsBaseAdapter{ privateContextcontext;//定义上下文 //参数为上下文的构造方法 publicImageAdapter(Contextcontext){ this.context=context; } //得到图片的大小 @Override publicintgetCount(){//设置为整型的最大数 returnInteger.MAX_VALUE; } //得到指定图片的对象 @Override publicObjectgetItem(intposition){ returnnull; } //得到指定图片的对象的ID @Override publiclonggetItemId(intposition){ return0; } //显示图标列表 @Override publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ ImageViewiv=newImageView(context);//创建ImageView对象 iv.setImageResource(images[position%images.length]);//设置循环显示图片 iv.setAdjustViewBounds(true);//图片自动调整显示 //设置图片的宽和高 iv.setLayoutParams(newGallery.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); returniv;//返回ImageView对象 } } //自定义图片显示工厂类,继承ViewFactory classMyViewFactoryimplementsViewFactory{ privateContextcontext;//定义上下文 //参数为上下文的构造方法 publicMyViewFactory(Contextcontext){ this.context=context; } //显示图标区域 @Override publicViewmakeView(){ ImageViewiv=newImageView(context);//创建ImageView对象 iv.setScaleType(ImageView.ScaleType.FIT_CENTER);//图片自动居中显示 //设置图片的宽和高 iv.setLayoutParams(newImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); returniv;//返回ImageView对象 } } }
本文所述仅为其主要功能代码部分,读者可以对其进一步加以完善。由图像查看器还可以扩展出很多实用的Android图像操作功能,这些都是作为一个android应用开发新手应该搞定的技巧。