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 }; @Override protected 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() { // 設置圖片 @Override public 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() { @Override public 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 { @Override public int getCount() { // TODO Auto-generated method stub return Integer.MAX_VALUE; } @Override public Object getItem(int position) { return res[position % res.length]; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public 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="https://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="https://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>