正文
一、结构
public class ImageSwitcher extends ViewSwitcher
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.FrameLayout
android.widget.ViewAnimator
android.widget.ViewSwitcher
android.widget.ImageSwitcher
二、概述
(译者注:ImageSwitcher是Android中控制图片展示效果的一个控件,如:幻灯片效果...,颇有感觉啊,做相册一绝。)
三、公共方法
public void setImageDrawable (Drawable drawable)
绘制图片
public void setImageResource (int resid)
设置图片资源库
public void setImageURI (Uri uri)
设置图片地址
四、补充
4.1 文章链接
Image Switcher View | Android Developer Tutorial
4.2 示例代码(本文代码转载自这里)
java文件
public
class
mainactivity
extends
Activity
implements
OnItemSelectedListener, ViewFactory {
private ImageSwitcher is;
private Gallery gallery;
private Integer[] mThumbIds = { R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.f, R.drawable.g,
};
private Integer[] mImageIds = { R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.f, R.drawable.g, };
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
is = (ImageSwitcher) findViewById(R.id.switcher);
is.setFactory( this );
is.setInAnimation(AnimationUtils.loadAnimation( this ,
android.R.anim.fade_in));
is.setOutAnimation(AnimationUtils.loadAnimation( this ,
android.R.anim.fade_out));
gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter( new ImageAdapter( this ));
gallery.setOnItemSelectedListener( this );
}
@Override
public View makeView() {
ImageView i = new ImageView( this );
i.setBackgroundColor( 0xFF000000 );
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams( new ImageSwitcher.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
return i;
}
public class ImageAdapter extends BaseAdapter {
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem( int position) {
return position;
}
public long getItemId( int position) {
return position;
}
public View getView( int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
i.setImageResource(mThumbIds[position]);
i.setAdjustViewBounds( true );
i.setLayoutParams( new Gallery.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
i.setBackgroundResource(R.drawable.e);
return i;
}
private Context mContext;
}
@Override
public void onItemSelected(AdapterView <?> parent, View view, int position,
long id) {
is.setImageResource(mImageIds[position]);
}
@Override
public void onNothingSelected(AdapterView <?> parent) {
}
}
OnItemSelectedListener, ViewFactory {
private ImageSwitcher is;
private Gallery gallery;
private Integer[] mThumbIds = { R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.f, R.drawable.g,
};
private Integer[] mImageIds = { R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.f, R.drawable.g, };
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
is = (ImageSwitcher) findViewById(R.id.switcher);
is.setFactory( this );
is.setInAnimation(AnimationUtils.loadAnimation( this ,
android.R.anim.fade_in));
is.setOutAnimation(AnimationUtils.loadAnimation( this ,
android.R.anim.fade_out));
gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter( new ImageAdapter( this ));
gallery.setOnItemSelectedListener( this );
}
@Override
public View makeView() {
ImageView i = new ImageView( this );
i.setBackgroundColor( 0xFF000000 );
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams( new ImageSwitcher.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
return i;
}
public class ImageAdapter extends BaseAdapter {
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem( int position) {
return position;
}
public long getItemId( int position) {
return position;
}
public View getView( int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
i.setImageResource(mThumbIds[position]);
i.setAdjustViewBounds( true );
i.setLayoutParams( new Gallery.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
i.setBackgroundResource(R.drawable.e);
return i;
}
private Context mContext;
}
@Override
public void onItemSelected(AdapterView <?> parent, View view, int position,
long id) {
is.setImageResource(mImageIds[position]);
}
@Override
public void onNothingSelected(AdapterView <?> parent) {
}
}
xml文件
<?
xml version="1.0" encoding="utf-8"
?>
< RelativeLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width ="match_parent"
android:layout_height ="match_parent" >
< ImageSwitcher android:id ="@+id/switcher"
android:layout_width ="match_parent"
android:layout_height ="match_parent"
android:layout_alignParentTop ="true"
android:layout_alignParentLeft ="true"
/>
< Gallery android:id ="@+id/gallery"
android:background ="#55000000"
android:layout_width ="match_parent"
android:layout_height ="60dp"
android:layout_alignParentBottom ="true"
android:layout_alignParentLeft ="true"
android:gravity ="center_vertical"
android:spacing ="16dp"
/>
</ RelativeLayout >
< RelativeLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width ="match_parent"
android:layout_height ="match_parent" >
< ImageSwitcher android:id ="@+id/switcher"
android:layout_width ="match_parent"
android:layout_height ="match_parent"
android:layout_alignParentTop ="true"
android:layout_alignParentLeft ="true"
/>
< Gallery android:id ="@+id/gallery"
android:background ="#55000000"
android:layout_width ="match_parent"
android:layout_height ="60dp"
android:layout_alignParentBottom ="true"
android:layout_alignParentLeft ="true"
android:gravity ="center_vertical"
android:spacing ="16dp"
/>
</ RelativeLayout >
结束
wallace2010居然弄个这么好看的图片 - - # 吸引帝......
本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582635,如需转载请自行联系原作者