public class MainActivity extends Activity {private Gallery gallery;private LayoutInflater inflater;private ImageSwitcher imageSwitcher;private int res[] = new int[] { R.drawable.ic_launcher, R.drawable.an01,R.drawable.an02, R.drawable.an03, R.drawable.an01, R.drawable.an02,R.drawable.an03 };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);/** * 系統中有沒有合適的適配器 */gallery = (Gallery) findViewById(R.id.gallery1);// 擷取ImageView控制項imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1);// 初始化一次工廠即可imageSwitcher.setFactory(new ImageSwitcher.ViewFactory() {// 設定圖片@Overridepublic View makeView() {ImageView imageView = new ImageView(MainActivity.this);imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);return imageView;}});// 加入動畫imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this, android.R.anim.fade_in));imageSwitcher.setOutAnimation(MainActivity.this,android.R.anim.fade_out);List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();for (int i = 0; i < res.length; i++) {Map<String, Object> map = new HashMap<String, Object>();map.put("imageView", res[i]);data.add(map);}SimpleAdapter simpleAdapter = new SimpleAdapter(this, data,R.layout.activity_cell, new String[] { "imageView" },new int[] { R.id.imageView1 });gallery.setAdapter(simpleAdapter);// 註冊事件gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// 擷取圖片資源int imageResId = res[position % res.length];// 設定imageSwithcer組件資源imageSwitcher.setImageResource(imageResId);}});}/*public class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn Integer.MAX_VALUE;}@Overridepublic Object getItem(int position) {return res[position % res.length];}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View v = inflater.inflate(R.layout.activity_gallery, null);ImageView iv = (ImageView) v.findViewById(R.id.imageView1);int imageResId = res[position % res.length];System.out.println(position + "-------" + imageResId);iv.setImageResource(imageResId);return v;}}*/}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Gallery android:id="@+id/gallery1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="0dp" /> <ImageSwitcher android:id="@+id/imageSwitcher1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </ImageSwitcher></LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/an01" /></LinearLayout>