这里有新鲜出炉的精品教程,程序狗速度看过来!
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
这篇文章主要介绍了 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://www.phperz.com/article/17/0822/337678.html