Android 切换图片ImageSwitcher

我们在Windows 平台上要查看多张图片,最简单的办法就是通过 "Window 图片和传真查看器“在 ”下一张“ 和”上一张“之间切换,Android平台上可以通过 ImageSwitcher 类来实现这一效果。ImageSwitcher 类必须设置一个ViewFactory,主要用来将显示的图片和父窗口区分开来,因此需要实现ViewSwitcher.ViewFactory接口,通过makeView()方法来显示图片,这里会返回一个ImageView 对象,而方法 setImageResource用来指定图片资源。首先先让我们看看这个例子的运行效果。 

效果图:


Java代码:
package eoe.Demo;

import android.app.Activity; 
import android.os.Bundle; 
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 Activity01 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, };

// 创建ImageSwitcher对象 
private ImageSwitcher m_Switcher; 
// 索引 
private static int index = 0;

// "下一页"按钮ID 
private static final int BUTTON_DWON_ID = 0x123456; 
// “上一页”按钮ID 
private static final int BUTTON_UP_ID = 0x123457; 
// ImageSwitcher对象的ID 
private static final int SWITCHER_ID = 0x123458;

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
// 创建一个线性布局LinearLayout 
LinearLayout main_view = new LinearLayout(this); 
// 创建ImageSwitcher对象 
m_Switcher = new ImageSwitcher(this); 
// 在线性布局中添加ImageSwitcher视图 
main_view.addView(m_Switcher); 
// 设置ImageSwitcher对象的ID 
m_Switcher.setId(SWITCHER_ID); 
// 设置ImageSwitcher对象的数据源 
m_Switcher.setFactory((ViewFactory) this); 
m_Switcher.setImageResource(imagelist[index]);

// 设置显示上面的线性布局 
setContentView(main_view); 
// 设置背景图片 
main_view.setBackgroundResource(R.drawable.xh);

// 创建“下一张”按钮 
Button next = new Button(this); 
next.setId(BUTTON_DWON_ID); 
next.setText("下一张"); 
next.setOnClickListener((OnClickListener) 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((OnClickListener) this); 
main_view.addView(pre, param); 
}

// 事件监听、处理 
public void onClick(View v) { 
switch (v.getId()) { 
// 下一页 
case BUTTON_DWON_ID: 
index++; 
if (index >= imagelist.length) { 
index = 0; 

// ImageSwitcher对象资源索引 
m_Switcher.setImageResource(imagelist[index]); 
break; 
// 上一页 
case BUTTON_UP_ID: 
index--; 
if (index < 0) { 
// 到最后一张 
index = imagelist.length - 1; 

// ImageSwitcher对象资源索引 
m_Switcher.setImageResource(imagelist[index]); 
default: 
break; 

}

public View makeView() { 
// 将所有图片通过ImageView来显示 
return new ImageView(this); 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值