您的位置:首页 > 移动开发 > Android开发

Android实现获取手机里面的所有图片

2017-07-03 18:07 513 查看
 


Android实现获取手机里面的所有图片

标签: android获取手机图片ContentProviderContentResolverMedialistview
2016-09-03 22:52 2469人阅读 评论(0) 收藏 举报


 分类:

android(15) 


版权声明:本文为博主原创文章,未经博主允许不得转载。

[java] view
plain copy

public class MainActivity extends Activity {  

[java] view
plain copy

//查看图片按钮  

    private Button look;  

    private Button add;  

[java] view
plain copy

//显示图片名称的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();  

        }  

    });  

    }  

}  

<!--获取手机存储卡权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: