一、重要方法
setImageURI(Uriuri):设置图片地址
setImageResource(intresid):设置图片资源库
setImageDrawable(Drawabledrawable):绘制图片
二、继承关系
三、一个简单的实例
ImageSwitcher与ImageView很相似,他们都可以显示图片,不同的是,ImageSwitcher可以设置动画效果,
seitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));//设置图片载入时动画。
seitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));//设置图片切换动画。
动画效果可以自己定义,此处使用的是Android系统自带的动画。
使用ImageSwitcher时必须设定一个ViewFactory。
程序代码
package org.ynu.android;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
public class ImagerSwitcher01 extends Activity {
private ImageSwitcher is_imageSwitcher;
//存放图片id的int数组
private int[] images={R.drawable.img01,
R.drawable.img02,
R.drawable.img03,
R.drawable.img04,
R.drawable.img05,
R.drawable.img06,
R.drawable.img07,
R.drawable.img08,
R.drawable.img09};
//下一张和上一张按钮
private Button btn_next;
private Button btn_last;
private int index=0;
@Override
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
is_imageSwitcher=(ImageSwitcher)findViewById(R.id.is_imageswitch);
btn_last=(Button)findViewById(R.id.btn_last);
btn_next=(Button)findViewById(R.id.btn_next);
//imageSwticher必须设置一个viewfactory后才可以查看图片
is_imageSwitcher.setFactory(new ImageViewFactory(this));
//设置图片资源id
is_imageSwitcher.setBackgroundResource(images[index]);
}
//重写了的viewFactory
classImageViewFactory implements ViewFactory
{
private Context context;
public ImageViewFactory(Context context)
{
this.context = context;
}
@Override
public View makeView() {
// TODOAuto-generated method stub
//定义每个图像的显示大小
ImageView iv= new ImageView(this.context);
iv.setLayoutParams(newImageSwitcher.LayoutParams(300, 300));
returniv;
}
}
//上一张的按钮事件
public voidonClickLast(View v)
{
if(index>=0&&index<images.length-1)
{
index++;
is_imageSwitcher.setBackgroundResource(images[index]);
}else
{
index=images.length-1;
}
}
//下一张的按钮事件
public voidonClickNext(View v)
{
if(index>0&&index<images.length)
{
index--;
is_imageSwitcher.setBackgroundResource(images[index]);
}else
{
index=images.length-1;
}
}
}
布局文件
布局文件中定义了按钮点击事件
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayoutandroid:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ImageSwitcherandroid:id="@+id/is_imageswitch"
android:layout_width="wrap_content"android:layout_height="300px">
</ImageSwitcher>;
</LinearLayout>
<LinearLayoutandroid:layout_width="fill_parent"
android:layout_height="wrap_content">
<Buttonandroid:id="@+id/btn_last" android:layout_width="150px"
android:layout_height="wrap_content"android:text="上一张"
android:onClick="onClickLast"
>
</Button>
<Buttonandroid:id="@+id/btn_next" android:layout_width="150px"
android:layout_height="wrap_content"android:text="下一张"
android:onClick="onClickNext"
>
</Button>
</LinearLayout>
</LinearLayout>