android兑现图片查看器

android实现图片查看器

如图是程序的运行界面

android兑现图片查看器

点击下一张,可以查看下一张图片

android兑现图片查看器

具体实现代码

package com.example.imageswitcher;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ViewSwitcher.ViewFactory;

public class MainActivity extends Activity implements OnClickListener,ViewFactory
{
	private static final Integer[] imagelist=
	{
		R.drawable.img1,
		R.drawable.img2,
		R.drawable.img3,
		R.drawable.img4,
		R.drawable.img5,
		R.drawable.img6,
		R.drawable.img7,
		R.drawable.img8
	};
private ImageSwitcher m_Switcher;
private static int index=0;
private static final int BUTTON_DOWN_ID=0X123456;
private static final int BUTTON_UP_ID=0X123457;
private static final int SWITCHER_ID=0X123458;
@Override
public void onCreate(Bundle savedInstanceState)
{
	super.onCreate(savedInstanceState);
	LinearLayout main_view=new LinearLayout(this);
	m_Switcher=new ImageSwitcher(this);
	main_view.addView(m_Switcher);
	m_Switcher.setId(SWITCHER_ID);
	m_Switcher.setId(SWITCHER_ID);
	m_Switcher.setFactory(this);
	m_Switcher.setImageResource(imagelist[index]);
	setContentView(main_view);
	
	Button next=new Button(this);
	next.setId(BUTTON_DOWN_ID);
	next.setText("下一张");
	next.setOnClickListener(this);
	LinearLayout.LayoutParams param=new LinearLayout.LayoutParams(100,100);
	main_view.addView(next,param);
	
	Button pre=new Button(this);
	pre.setId(BUTTON_UP_ID);
	pre.setText("上一张");
	pre.setOnClickListener(this);
	main_view.addView(pre,param);
	}
	@Override
	public void onClick(View v)
	{
		switch(v.getId())
		{
		case BUTTON_DOWN_ID:
		index++;
		if(index>=imagelist.length)
		{
			index=0;
		}
		m_Switcher.setImageResource(imagelist[index]);
		break;
		case BUTTON_UP_ID:
		index--;
		if(index<0)
		{
			index=imagelist.length-1;
		}
		m_Switcher.setImageResource(imagelist[index]);
		break;
		default:
		break;
		}
	}
	public View makeView()
	{
		return new ImageView(this);
	}
}

需要注意的地方

需要实现ViewFactory类并且重写makeView方法