2.xml:裡面要擺一個gallary物件,並且在drawable資料夾裡放入想擺的圖片
3.實作:
public class checkmain extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.checkmain); //取得GALLARY物件 ((Gallery) findViewById(R.id.photogallary)).setAdapter(new ImageAdapter2(this)); } class ImageAdapter2 extends BaseAdapter { /* 類別成員 myContext為Context父類別 */ private Context myContext; /*使用R.drawable裡的圖片作為圖庫來源,型態為整數陣列*/ private int[] myImageIds = { //photoxx是圖片檔名,跟擺在drawable資料夾裡的一樣 R.drawable.photo1, R.drawable.photo2, R.drawable.photo3, R.drawable.photo4, R.drawable.photo5, }; /* 建構子只有一個參數,即要儲存的Context */ public ImageAdapter2(Context c) { this.myContext = c; } /* 回傳所有已定義的圖片總數量 */ public int getCount() { return this.myImageIds.length; } /* 利用getItem方法,取得目前容器中影像的陣列ID */ public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } /* 取得目前欲顯示的影像View,傳入陣列ID值使之讀取與成像 */ public View getView(int position, View convertView, ViewGroup parent) { /* 建立一個ImageView物件 */ ImageView i = new ImageView(this.myContext); i.setImageResource(this.myImageIds[position]); i.setScaleType(ImageView.ScaleType.FIT_XY); /* 設定這個ImageView物件的寬高,單位為dip */ i.setLayoutParams(new Gallery.LayoutParams(120, 120)); return i; } /*依據距離中央的位移量 利用getScale回傳views的大小(0.0f to 1.0f)*/ public float getScale(boolean focused, int offset) { /* Formula: 1 / (2 ^ offset) */ return Math.max(0,1.0f/(float)Math.pow(2,Math.abs(offset))); } } }
沒有留言:
張貼留言