当前位置: 移动互联网学院 > Android开发 > android 获取手机内所有图片的代码实现
android 获取手机内所有图片的代码实现 时间:2017-02-22     来源:移动互联网学院

  我们在编写android程序的时候,经常会有这种需求,就是获取手机内的所有图片,例如制作一个图片编辑软件,就需要首先获取到手机中的图片。今天华清远见教育科技集团要为分享的就是android 获取手机内所有图片的代码实现。

  申明权限

  通过内容观察者获取手机内的所有图片地址,图片名

  ArrayList names = null;

  ArrayList fileNames = null;

  public List> getAllImage() {

  List> listItems = new ArrayList<>();

  names = new ArrayList();

  fileNames = new ArrayList();

  Cursor cursor = getContentResolver().query(

  MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);

  while (cursor.moveToNext()) {

  //获取图片的名称

  String name = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));

  //获取图片的地址

  byte[] data = cursor.getBlob(cursor.getColumnIndex(MediaStore.Images.Media.DATA));

  names.add(name);

  fileNames.add(new String(data, 0, data.length - 1));

  }

  for (int i = 0; i < names.size(); i++) {

  Map map = new HashMap<>();

  map.put("name", names.get(i));

  map.put("fileNames", fileNames.get(i));

  Log.i(MainActivity.class.getName(), names.get(i) + "");

  Log.i(MainActivity.class.getName(), fileNames.get(i) + "");

  listItems.add(map);

  }

  return listItems;

  }

  如果你的android版本是6.0以上责需要 做一个权限处理

  申请权限

  public void getSDPermission() {

  if (ContextCompat.checkSelfPermission(MainActivity.this,

  Manifest.permission.READ_EXTERNAL_STORAGE)

  != PackageManager.PERMISSION_GRANTED) {

  //申请权限

  ActivityCompat.requestPermissions(MainActivity.this,

  new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,},

  200);

  } else {

  //已经有权限,

  //

  getAllImage();

  }

  }

  权限的回调

  @Override

  public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {

  switch (requestCode) {

  case 200: {

  // If request is cancelled, the result arrays are empty.

  if (grantResults.length > 0) {

  //判断权限

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

  //判断是否 申请成功权限

  if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {

  //失败 继续 申请权限

  ActivityCompat.requestPermissions(MainActivity.this,

  new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},

  200);

  return;

  }else {

  getAllImage();

  }

  }

  }

  return;

  }

  }

  }