android 擷取相簿清單的實現及源碼下載(四),android源碼下載
該項目實現的功能如下:
擷取手機相簿,點擊每個相簿之後進入該相簿的圖片列表介面,在圖片列表介面可以實現圖片多選,然後進入所選擇的圖片介面,在該介面內可以實現所選圖片的上傳等功能。
該項目最大特色:
1、擷取相簿清單,目前網路上面介紹擷取相簿的項目很少,本文專門講述相簿的擷取。
2、使用Android-Universal-Image-Loader整合架構-第三方jar包載入本地圖片,熟悉這個jar的開發人員肯定不陌生,該jar包十分強大,除了可以擷取網狀圖片,本地圖片也是可以的。同時,通過引用第三方jar可以有效解決OOM異常問題。
以上三篇博文的地址如下:
android 擷取相簿清單的實現及源碼下載(一)
android 擷取相簿清單的實現及源碼下載(二)
android 擷取相簿清單的實現及源碼下載(三)
本篇繼續上面三篇博文的內容講述,下面給出在選定的相簿裡面的圖片之後,Activity跳轉到所選擇的圖片的介面,就是把所選擇的圖片載入到介面當中顯示,這樣處理方便開發人員對所選擇的圖片進行處理,如上傳等可以根據自己的需求進一步開發。
下面給出Activity類的代碼:
public class SelectedImagesActivity extends Activity implements OnClickListener{ private GridView gridView; private TextView back,ok; private ArrayList<PhotoUpImageItem> arrayList;//存放所選擇的圖片列表 private SelectedImagesAdapter adapter;//適配器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.selected_images_grid); init(); setclickListener(); } @SuppressWarnings("unchecked") private void init(){ gridView = (GridView) findViewById(R.id.selected_images_gridv); back = (TextView) findViewById(R.id.back); ok = (TextView) findViewById(R.id.sure); arrayList = (ArrayList<PhotoUpImageItem>) getIntent().getSerializableExtra("selectIma"); adapter = new SelectedImagesAdapter(SelectedImagesActivity.this, arrayList); gridView.setAdapter(adapter); } private void setclickListener(){ back.setOnClickListener(this); ok.setOnClickListener(this); gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } }); } @Override protected void onDestroy() { super.onDestroy(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.back: finish(); break; case R.id.sure: Toast.makeText(SelectedImagesActivity.this, "上傳等操作,開發人員可以自己處理", Toast.LENGTH_LONG).show(); break; } }}
Activity類代碼很簡單,下面給出適配器代碼:
public class SelectedImagesAdapter extends BaseAdapter { private ArrayList<PhotoUpImageItem> arrayList; private LayoutInflater layoutInflater; private ImageLoader imageLoader; private DisplayImageOptions options; public SelectedImagesAdapter(Context context,ArrayList<PhotoUpImageItem> arrayList){ this.arrayList = arrayList; layoutInflater = LayoutInflater.from(context); imageLoader = ImageLoader.getInstance(); // 使用DisplayImageOption.Builder()建立DisplayImageOptions options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.album_default_loading_pic) // 設定圖片下載期間顯示的圖片 .showImageForEmptyUri(R.drawable.album_default_loading_pic) // 設定圖片Uri為空白或是錯誤的時候顯示的圖片 .showImageOnFail(R.drawable.album_default_loading_pic) // 設定圖片載入或解碼過程中發生錯誤顯示的圖片 .cacheInMemory(true) // 設定下載的圖片是否緩衝在記憶體中 .cacheOnDisc(true) // 設定下載的圖片是否緩衝在SD卡中 // .displayer(new RoundedBitmapDisplayer(20)) // 設定成圓角圖片 .bitmapConfig(Config.ARGB_8888) .imageScaleType(ImageScaleType.IN_SAMPLE_INT) .build(); // 建立配置過的DisplayImageOption對象 } @Override public int getCount() { return arrayList.size(); } @Override public Object getItem(int position) { return arrayList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; if (convertView == null) { convertView = layoutInflater.inflate(R.layout.selected_images_adapter_item, parent, false); holder = new Holder(); holder.imageView = (ImageView) convertView.findViewById(R.id.selected_image_item); convertView.setTag(holder); }else { holder = (Holder) convertView.getTag(); } imageLoader.displayImage("file://"+arrayList.get(position).getImagePath(), holder.imageView, options); return convertView; } class Holder{ ImageView imageView; }}
適配器代碼也很簡單,直接使用圖片載入器-第三方jar包實現,點擊確定按鈕開發人員可以進行後續的開發工作。
至此整個項目講述完畢。如果各位朋友有什麼疑問或者發現文中有誤,請不吝賜教!非常感謝!同時,由於本人水平有限,如果博文中有什麼錯誤的地方,請多多包涵,歡迎批評指正!【握手】
博文連結:
android 擷取相簿清單的實現及源碼下載(一)
android 擷取相簿清單的實現及源碼下載(二)
android 擷取相簿清單的實現及源碼下載(三)
源碼下載