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应用开发新手应该搞定的技巧。