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)));
}
}
}