新建项目:
项目结构:

运行效果:
代码部分:
imageswitcherpage.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent">
6
7 <ImageSwitcher android:id="@+id/switcher"
8 android:layout_width="match_parent"
9 android:layout_height="match_parent"
10 android:layout_alignParentTop="true"
11 android:layout_alignParentLeft="true"
12 />
13
14 <Gallery android:id="@+id/gallery"
15 android:background="#55000000"
16 android:layout_width="match_parent"
17 android:layout_height="60dp"
18 android:layout_alignParentBottom="true"
19 android:layout_alignParentLeft="true"
20
21 android:gravity="center_vertical"
22 android:spacing="16dp"
23 />
24
25 </RelativeLayout>MainActivity.java
1 package com.b510;
2
3 import android.app.Activity;
4 import android.content.Context;
5 import android.os.Bundle;
6 import android.view.View;
7 import android.view.ViewGroup;
8 import android.view.Window;
9 import android.view.animation.AnimationUtils;
10 import android.widget.AdapterView;
11 import android.widget.BaseAdapter;
12 import android.widget.Gallery;
13 import android.widget.ImageSwitcher;
14 import android.widget.ImageView;
15 import android.widget.AdapterView.OnItemSelectedListener;
16 import android.widget.Gallery.LayoutParams;
17 import android.widget.ViewSwitcher.ViewFactory;
18
19 public class MainActivity extends Activity implements OnItemSelectedListener,
20 ViewFactory {
21 /** 定义一个切换图片对象is */
22 private ImageSwitcher is;
23 /** 定义一个画廊Galley对象 */
24 private Gallery gallery;
25
26 /** 定义图片资源 */
27 private Integer[] mThumbIds = { R.drawable.b, R.drawable.p4, R.drawable.d,
28 R.drawable.f, R.drawable.p8, R.drawable.p1, R.drawable.p2,
29 R.drawable.p3, R.drawable.c, R.drawable.p5, R.drawable.p6,
30 R.drawable.p7, R.drawable.g, };
31 /** 定义图片的id */
32 private Integer[] mImageIds = { R.drawable.b, R.drawable.p4, R.drawable.d,
33 R.drawable.f, R.drawable.p8, R.drawable.p1, R.drawable.p2,
34 R.drawable.p3, R.drawable.c, R.drawable.p5, R.drawable.p6,
35 R.drawable.p7, R.drawable.g, };
36
37 @Override
38 protected void onCreate(Bundle savedInstanceState) {
39 // TODO Auto-generated method stub
40 super.onCreate(savedInstanceState);
41 // 关掉在屏幕顶端的标题
42 requestWindowFeature(Window.FEATURE_NO_TITLE);
43 // 得到图片的布局文件
44 setContentView(R.layout.imageswitcherpage);
45 // 初始化is对象
46 is = (ImageSwitcher) findViewById(R.id.switcher);
47 // 设置工厂用来创建两种视图的ViewSwitcher之间会翻转
48 is.setFactory(this);
49 // 定义的动画
50 is.setInAnimation(AnimationUtils.loadAnimation(this,
51 android.R.anim.fade_in));
52 is.setOutAnimation(AnimationUtils.loadAnimation(this,
53 android.R.anim.fade_out));
54
55 gallery = (Gallery) findViewById(R.id.gallery);
56 // 给画廊添加适配器
57 gallery.setAdapter(new ImageAdapter(this));
58 // 给画廊中的每一个item设置选择监听器
59 gallery.setOnItemSelectedListener(this);
60 }
61
62 // 重写makeView方法
63 @Override
64 public View makeView() {
65 ImageView i = new ImageView(this);
66 i.setBackgroundColor(0xFF000000);
67 i.setScaleType(ImageView.ScaleType.FIT_CENTER);
68 i.setLayoutParams(new ImageSwitcher.LayoutParams(
69 LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
70 return i;
71 }
72
73 public class ImageAdapter extends BaseAdapter {
74 public ImageAdapter(Context c) {
75 mContext = c;
76 }
77
78 public int getCount() {
79 return mThumbIds.length;
80 }
81
82 public Object getItem(int position) {
83 return position;
84 }
85
86 public long getItemId(int position) {
87 return position;
88 }
89
90 public View getView(int position, View convertView, ViewGroup parent) {
91 ImageView i = new ImageView(mContext);
92
93 i.setImageResource(mThumbIds[position]);
94 i.setAdjustViewBounds(true);
95 i.setLayoutParams(new Gallery.LayoutParams(
96 LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
97 i.setBackgroundResource(R.drawable.e);
98 return i;
99 }
100
101 private Context mContext;
102
103 }
104
105 @Override
106 public void onItemSelected(AdapterView<?> parent, View view, int position,
107 long id) {
108 // 当每一个对象被选择时得到图像的id
109 is.setImageResource(mImageIds[position]);
110
111 }
112
113 @Override
114 public void onNothingSelected(AdapterView<?> parent) {
115
116 }
117 }