首页 > 系统 > Android > 正文

Android实现图片浏览器示例

2020-04-11 11:47:15
字体:
来源:转载
供稿:网友

本文所述为一个基础的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应用开发新手应该搞定的技巧。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表