>Java >java지도 시간 >Android 이미지 브라우저 예

Android 이미지 브라우저 예

高洛峰
高洛峰원래의
2017-01-17 14:47:061163검색

이 글에 설명된 코드는 Google의 원본 버전을 모방한 기본 Android 이미지 브라우저 코드입니다. 구체적인 개선 사항은 직접 코드에 추가해야 합니다. 초보자가 코드를 빠르게 이해할 수 있도록 일부 이미지 리소스가 사용됩니다.

주요 함수 코드는 다음과 같습니다.

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 애플리케이션 개발자가 마스터해야 하는 기술입니다.

Android 이미지 브라우저 예제와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.