软件编程
位置:首页>> 软件编程>> Android编程>> Android 实现获取手机里面的所有图片详解及实例

Android 实现获取手机里面的所有图片详解及实例

作者:lqh  发布时间:2023-09-13 14:55:14 

标签:Android,手机图片

Android 实现获取手机里面的所有图片详解及实例

实现代码:


public class MainActivity extends Activity {

//查看图片按钮
 private Button look;
 private Button add;
//显示图片名称的list
 ListView show_list;
 ArrayList names = null;
 ArrayList descs= null;
 ArrayList fileNames = null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   look = (Button) findViewById(R.id.look);
   add = (Button) findViewById(R.id.add);
   show_list = (ListView) findViewById(R.id.show_list);
   look.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
       names = new ArrayList();
       descs = 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));
         //获取图片的详细信息
         String desc = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DESCRIPTION));
         names.add(name);
         descs.add(desc);
         fileNames.add(new String(data, 0, data.length - 1));
       }
       List<Map<String, Object>> listItems = new ArrayList<>();
       for (int i = 0; i < names.size(); i++) {
         Map<String, Object> map = new HashMap<>();
         map.put("name", names.get(i));
         map.put("desc", descs.get(i));
         listItems.add(map);
       }
       //设置adapter
       SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, listItems,
           R.layout.line, new String[]{"name", "desc"}, new int[]{R.id.name, R.id.desc});

show_list.setAdapter(adapter);
     }
   });

///list的点击事件
 show_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
     View viewDiag = getLayoutInflater().inflate(R.layout.view,null);
     ImageView image = (ImageView)viewDiag.findViewById(R.id.image);
     image.setImageBitmap(BitmapFactory.decodeFile((String) fileNames.get(i)));
     new AlertDialog.Builder(MainActivity.this).setView(viewDiag)
         .setPositiveButton("确定",null).show();
   }
 });
 }
}

XML:


<!--获取手机存储卡权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://blog.csdn.net/bi_diu1368/article/details/52425999

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com