2011年8月22日 星期一

【Android】TQC+題組系列(六)


Gallery 完全沒用過所以是上網查了之後才做的,而且範例中把 Adapter 設為內置類別讓我覺得非常困惑...

首先一定要有 adapter 要用的陣列,因為是圖片所以是一組儲存 resource id 的整數陣列。
final int[] imgIds = {
    R.drawable.png001,
    ...
};
然後是對 adapter 來說最重要的 getView 設定
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imgView = new ImageView(mCtxt);
    imgView.setImageResource(imgIds[position]);
    imgView.setLayoutParams(new Gallery.LayoutParams(236, 188));
    return imgView;
}
因為是圖像所以用 ImageView,mCtxt是傳入Activity的實體,然後設定 resource 為依據索引在陣列中取得剛剛設置的圖像資源。

最後就是設置 adapter 給 Gallery,然後設置 listener。
ImageAdapter imgAdapter = new ImageAdapter(this);
myGallery.setAdapter(imgAdapter);
myGallery.setOnItemClickListener(new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) {
        // TODO Auto-generated method stub
        Toast.makeText(GDD01.this, 
            GDD01.this.getResources().getString(R.string.my_gallery_text_pre)
            + arg2 + 
            GDD01.this.getResources().getString(R.string.my_gallery_text_post),
        Toast.LENGTH_LONG).show();
    }
});

沒有留言:

張貼留言