原文地址:http://blog.csdn.net/nbalichaoq
android中调用系统图库本来是一个很基本的东西,几乎每个app都用的到(最基本的更换用户头像),网上的相关
容很多,本来找了几篇看了一下,拿几台测试机试了一下感觉就没什么问题了,但是适配问题慢慢就来了。
一.打开图库的基本方法。
通过查询资料,调用系统图库基本有3种方法。
1.使用Intent.ACTION_PICK
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media. EXTERNAL_CONTENT_URI); //调用android的图库
//i.setType("image/*");//不可设置type,否则noactivityfound
startActivityForResult(Intent. createChooser(i,null) , 2) ;
这个intent在android6.0以下是可以用的,但是到了6.0就无效了,具体打印log忘记了,官方文档也只用了这
Intent来获取留联系人,所以pass掉。
2.使用Intent.ACTION_GET_CONTENT
Intent innerIntent = new Intent(Intent.ACTION_GET_CONTENT) ; //"android.intent.action.GET_CONTENT"
innerIntent.setType( "image/*"); //查看类型 String IMAGE_UNSPECIFIED = "image/*";
innerIntent.addCategory(Intent. CATEGORY_OPENABLE );
startActivityForResult(Intent. createChooser(innerIntent, null) , 2) ;
并且有个bool型的extra EXTRA_ALLOW_MULTIPLE来支持多选功能(4.3及以上版本支持)。
官方文档上说,这个intent是用来“检索一个特定类型的文件”并且回返回检索到的文件的一个引用(文件的copy)
这个貌似是可以用的,而且也是大多数人选择。
3.使用Intent.ACTION_OPEN_DOCUMENT
Intent intent =