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

6ImageAdapter

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;

    }

   

85、从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()));

                }

            }

        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值