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

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

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

标签:Android,手机图片
0
投稿

猜你喜欢

  • 使用JSONObject生成和解析json的方法

    2022-06-15 11:13:15
  • C#计算字符串哈希值(MD5、SHA)的方法小结

    2022-07-02 15:47:55
  • 自定义Android注解系列教程之注解变量

    2022-10-17 05:42:10
  • Java经典排序算法之插入排序

    2022-08-29 11:08:39
  • Spring bean的实例化和IOC依赖注入详解

    2023-11-23 23:57:15
  • Unity时间戳的使用方法

    2023-11-11 05:19:00
  • JavaWeb之Filter过滤器详解

    2021-06-30 03:40:55
  • java中unicode和中文相互转换的简单实现

    2021-12-18 09:46:17
  • C#实现系统托盘通知的方法

    2023-04-17 08:40:02
  • C#串口编程System.IO.Ports.SerialPort类

    2023-06-07 17:48:28
  • 详解Lombok安装及Spring Boot集成Lombok

    2023-11-28 23:39:55
  • 项目为什么引入log4j而不是logback代码

    2023-02-02 07:51:07
  • MyBatis-plus中的模糊查询解读

    2022-06-16 08:27:03
  • Java动态代理静态代理实例分析

    2023-11-14 18:06:07
  • android实现文件读写功能

    2022-03-10 16:31:23
  • Java数据结构及算法实例:冒泡排序 Bubble Sort

    2022-10-17 08:39:45
  • 解决C# X64应用程序中读取WParam溢出的问题

    2022-01-22 17:41:03
  • SpringBoot实现二维码扫码登录的原理及项目实践

    2022-02-25 22:31:15
  • java启动jar包将日志打印到文本的简单操作

    2021-12-05 10:42:21
  • java开发线上事故理解RocketMQ异步精髓

    2023-07-25 07:41:20
  • asp之家 软件编程 m.aspxhome.com