Adapter
Adapter的種類
1、BaseAdapter:基礎數據適配器,它的主要用途是將一組數據傳到例如ListView等UI顯示組件,繼承自接口類Adapter,由於是基礎類型,所以自由度高, 可以修改的地方多
2、SimpleAdapter:簡單適配器,系統自定義了一些方法,可以重寫這些方法
3、ArrayAdapter:數據和UI一對一,傳入數據源和佈局文件,完成顯示
4、SimpleCursorAdapter:指向性適配器,指向數據庫,可以方便地把數據庫的內容以列表的形式展示出來
AdapterView
Gallery(畫廊的實現)與BaseAdapter
在Layout的部分先設置一個Gallery與ImageSwitcher
對ImageSwitcher做初使設定
imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
ImageView imageView=new ImageView(getApplicationContext());
return imageView;
}
});
設定效果滑動效果
//淡入淡出效果
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
imageSwitcher.setAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
對Gallery設定Adapter,這邊我是用BaseAdapter
gallery.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return imagesId.length;
//多少種方法
}
@Override
public Object getItem(int position) {
return imagesId[position];
}
@Override
public long getItemId(int position) {
return position;
}
最後一個getView的設定
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView=new ImageView(getApplicationContext());
imageView.setImageResource(imagesId[position]);
imageView.setAdjustViewBounds(true);
imageView.setLayoutParams(new Gallery.LayoutParams(Gallery.LayoutParams.WRAP_CONTENT,Gallery.LayoutParams.WRAP_CONTENT));
return imageView;
}
效果:
ListView與SimpleAdapter
首先在mainLayout裡面放一個List 創建一個新的Layout 再來就在Main.class裡面對List做一些設定
listView=(ListView)findViewById(R.id.listView);
List<Map<String, Object>> items = new ArrayList<Map<String,Object>>();
for(int i=0;i<image.length;i++){
Map<String,Object> item=new HashMap<String,Object>();
item.put("image", image[i]);
item.put("text", name[i]);
items.add(item);
}
之後設定SimpleAdapter
simpleAdapter = new SimpleAdapter(this,
items, R.layout.simple_list, new String[]{"image", "text"},
new int[]{R.id.image, R.id.text});
listView.setAdapter(simpleAdapter);
效果: