首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

gallery加载大量图片时内存溢出的解决办法(三)

2012-09-12 
gallery加载大量图片时内存溢出的解决方法(三)6、ImageAdapterpublic class ImageAdapter extends BaseAdap

gallery加载大量图片时内存溢出的解决方法(三)

6、ImageAdapter

public class ImageAdapter extends BaseAdapter {

??????? private Context mContext;// 上下文

??????? public ImageAdapter(Context c) {

??????????? this.mContext = c;

??????? }

??????? @Override

??????? public int getCount() {

??????????? if (imageList != null) {

??????????????? return imageList.size();

??????????? } else {

??????????????? return 0;

??????????? }

??????? }

??????? @Override

??????? public Object getItem(int position) {

??????????? if (imageList != null) {

??????????????? return imageList.get(position);

??????????? }

??????????? return position;// 获取图片在库中的位置

??????? }

??????? @Override

??????? public long getItemId(int position) {

??????????? return position;// 获取图片在库中的位置

??????? }

??????? @Override

??????? public View getView(int position, View convertView, ViewGroup parent) {

??????????? Log.i("Tag", position + "");

??????????? ImageView imageView = new ImageView(mContext);

??????????? imageView.setScaleType(ImageView.ScaleType.FIT_XY);

??????????? imageView.setLayoutParams(new Gallery.LayoutParams(220, 247));

??????????? if (imageList.get(position).getIsNull().equals(ISTRUE)) {

??????????????? imageView.setImageResource(R.drawable.scene_ic_loading_invert);

??????????? } else {

??????????????? imageView.setImageBitmap(imageList.get(position).getImage());

??????????? }

??????????? return imageView;

??????? }

??????? public float getScale(boolean focused, int offset) {

??????????? return Math.max(0, 1.0f / (float) Math.pow(2, Math.abs(offset)));

??????? }

??? }

???

???

?

??? 7、查找图片是加载的进度条

??? @Override

??? protected Dialog onCreateDialog(int id) {

??????? if (id == 0) {

??????????? ProgressDialog loadingDialog = new ProgressDialog(this);

??????????? loadingDialog.setMessage("正在扫描中...,请稍候!");

??????????? loadingDialog.setIndeterminate(true);

??????????? loadingDialog.setCancelable(true);

??????????? return loadingDialog;

??????? }

??????? return null;

??? }

???

8、5、从sd卡里获取图片

??? public? void getSD(String dir) {

??????? File f = new File(dir);

??????? File[] files = f.listFiles();

??????? if (files != null) {

??????????? for (int i = 0; i < files.length; i++) {

??????????????? String[] s = new String[2];

??????????????? File file = files[i];

??????????????? if (file.isFile()) {

??????????????????? if (ImageManager.getImageFile(file.getPath())) {

??????????????????????? System.out.println("file?? " + String.valueOf(file));

??????????????????????? s[0] = file.getPath();

??????????????????????? s[1] = file.getName();

??????????????????????? pathList.add(s);

??????????????????? }

??????????????? } else if(file.isDirectory()){

??????????????????? getSD(String.valueOf(file.getAbsolutePath()));

??????????????? }

??????????? }

??????? }

??? }

热点排行