標籤:android style java get 使用 檔案
這篇打算直接告訴大家怎麼用吧,其實這個也不是很難的架構,大致使用過程如下:
// 擷取緩衝圖片目錄File cacheDir = StorageUtils.getOwnCacheDirectory(activity,"imageloader/Cache");ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(activity).memoryCacheExtraOptions(800, 760)// 儲存每個緩衝圖片的最大長和寬.threadPoolSize(3).diskCache(new UnlimitedDiscCache(cacheDir))// 線程池的大小 這個其實預設就是3.memoryCacheSize(2 * 1024)// 設定緩衝的最大位元組.denyCacheImageMultipleSizesInMemory()// 緩衝顯示不同大小的同一張圖片.imageDownloader(new BaseImageDownloader(activity, 5 * 1000, 30 * 1000)) // connectTimeout// s)逾時時間.build();imageLoader.init(config);
上面設定的目錄在我手機的/storage/sdcard0/imageloader/Cache中檔案是沒有.jpg或者.png結尾的,是一堆無格式的檔案,可以通過副檔名匯出開啟
第二步設定顯示圖片選項:
</pre><p></p><p><pre name="code" class="java">DisplayImageOptionsoptions = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_launcher)//設定圖片在下載期間顯示的圖片 .showImageForEmptyUri(R.drawable.ic_launcher)//設定圖片Uri為空白或是錯誤的時候顯示的圖片 .showImageOnFail(R.drawable.ic_launcher)//設定圖片載入/解碼過程中錯誤時候顯示的圖片.cacheInMemory(true)//設定下載的圖片是否緩衝在記憶體中 .cacheOnDisk(true)//設定下載的圖片是否緩衝在SD卡中 .displayer(new FadeInBitmapDisplayer(100)).considerExifParams(true).displayer(new FadeInBitmapDisplayer(100))// 圖片載入好後漸入的動畫時間.displayer(new RoundedBitmapDisplayer(1)).build();//這個一定要設定,不設定的話會導致圖片不能夠鋪滿整個控制項,這個是設定圓角效果的,如果大家不喜歡圓角可以設定為1幾乎沒有什麼效果
通過上面的代碼就可以正常使用了
下面是官方給的一個列子,會android看看下面的這個代碼應該就知道怎麼使用了吧,非常簡單
public class ImageListActivity extends AbsListViewBaseActivity {DisplayImageOptions options;String[] imageUrls;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.ac_image_list);Bundle bundle = getIntent().getExtras();imageUrls = bundle.getStringArray(Extra.IMAGES);options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_stub).showImageForEmptyUri(R.drawable.ic_empty).showImageOnFail(R.drawable.ic_error).cacheInMemory(true).cacheOnDisk(true).considerExifParams(true).displayer(new RoundedBitmapDisplayer(20)).build();listView = (ListView) findViewById(android.R.id.list);((ListView) listView).setAdapter(new ItemAdapter());listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {startImagePagerActivity(position);}});}
//注意下這裡,當按下返回鍵的時候清除一下在記憶體中的圖片,大家不過要過度依賴自動記憶體管理,有些時候還是手動去清除掉記憶體比較好,@Overridepublic void onBackPressed() {AnimateFirstDisplayListener.displayedImages.clear();super.onBackPressed();}private void startImagePagerActivity(int position) {Intent intent = new Intent(this, ImagePagerActivity.class);intent.putExtra(Extra.IMAGES, imageUrls);intent.putExtra(Extra.IMAGE_POSITION, position);startActivity(intent);}private static class ViewHolder {TextView text;ImageView image;}class ItemAdapter extends BaseAdapter {private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();@Overridepublic int getCount() {return imageUrls.length;}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {View view = convertView;final ViewHolder holder;if (convertView == null) {view = getLayoutInflater().inflate(R.layout.item_list_image, parent, false);holder = new ViewHolder();holder.text = (TextView) view.findViewById(R.id.text);holder.image = (ImageView) view.findViewById(R.id.image);view.setTag(holder);} else {holder = (ViewHolder) view.getTag();}holder.text.setText("Item " + (position + 1));imageLoader.displayImage(imageUrls[position], holder.image, options, animateFirstListener);return view;}}private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener {static final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>());@Overridepublic void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {if (loadedImage != null) {ImageView imageView = (ImageView) view;boolean firstDisplay = !displayedImages.contains(imageUri);if (firstDisplay) {FadeInBitmapDisplayer.animate(imageView, 500);displayedImages.add(imageUri);}}}}}
這是一個demo,這個圖片選項最好配置成一個單列類,便於管理和減少記憶體的溢出。