天实现一个比较简单的图片切换效果的小程序。
利用ImageSwitcher类,通过设置一个ViewFactory工厂,实现其makeView()方法来创建显示图片的View。
方法setImageResource用来显示指定的图片资源。
1. 将8张图片放入/res/drawable目录下,同时命名为sample_0,sample_1,....sample_7等;
2. 在代码中定义资源id数组;
- static final Integer[] imagelist =
- {
- R.drawable.sample_0,
- R.drawable.sample_1,
- R.drawable.sample_2,
- R.drawable.sample_3,
- R.drawable.sample_4,
- R.drawable.sample_5,
- R.drawable.sample_6,
- R.drawable.sample_7,
- };
Activity.java
- package com.luoye.allview;
- 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.ViewSwitcher.ViewFactory;
- public class SecondActivity extends Activity implements OnClickListener, ViewFactory{
- ImageSwitcher imageswitcher;
- private Button button_pre;
- private Button button_next;
- static final Integer[] imagelist =
- {
- R.drawable.sample_0,
- R.drawable.sample_1,
- R.drawable.sample_2,
- R.drawable.sample_3,
- R.drawable.sample_4,
- R.drawable.sample_5,
- R.drawable.sample_6,
- R.drawable.sample_7,
- };
- private static int index = 0;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.secondactivity);
- imageswitcher = (ImageSwitcher)findViewById(R.id.imageswitch);
- imageswitcher.setFactory(this);
- imageswitcher.setImageResource(imagelist[index]);
- button_pre = (Button)findViewById(R.id.button_pre);
- button_next = (Button)findViewById(R.id.button_next);
- button_pre.setOnClickListener(this);
- button_next.setOnClickListener(this);
- }
- @Override
- public View makeView() {
- // TODO Auto-generated method stub
- return new ImageView(this);
- }
- @Override
- public void onClick(View v) { //实现button的onClick方法
- // TODO Auto-generated method stub
- switch(v.getId())
- {
- case R.id.button_next:
- index++;
- if(index == imagelist.length)
- {
- index = 0;
- }
- imageswitcher.setImageResource(imagelist[index]);
- break;
- case R.id.button_pre:
- index--;
- if(index < 0)
- {
- index = imagelist.length - 1;
- }
- imageswitcher.setImageResource(imagelist[index]);
- break;
- default:
- break;
- }
- }
- }
布局文件:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
- <ImageSwitcher
- android:id="@+id/imageswitch"
- android:layout_width="wrap_content"
- android:layout_height="100dp"
- ></ImageSwitcher>
- <Button
- android:id="@+id/button_next"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="上一张"
- />
- <Button
- android:id="@+id/button_pre"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="下一张"
- />
- </LinearLayout>
效果:
点击下一张后,实现了切换