Bundle bundle = data.getExtras();
System.out.println("Camera--------------75------");
paizhao = false;
xiangce = true;
Uri originalUri = data.getData();
if (originalUri != null) {
Bitmap bitMap = null;
try {
if(bitMap!=null)bitMap.recycle();
bitMap = null;
bitMap = MediaStore.Images.Media.getBitmap(resolver,
originalUri);
String[] proj = { MediaColumns.DATA };
Cursor cursor = managedQuery(originalUri, proj, null, null,
null);
// 按我个人理解 这个是获得用户选择的图片的索引值
int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
System.out.println("706-------------camera------"
+ column_index);
// 将光标移至开头 ,这个很重要,不小心很容易引起越界
cursor.moveToFirst(); // 最后根据索引值获取图片路径
ByteArrayOutputStream out = new ByteArrayOutputStream();
uploadPhotPath = cursor.getString(column_index);
System.out
.println("camera--------------------561----------- 相册图片的地址--------"
+ uploadPhotPath);
Bitmap map = scaleImg(bitMap, 250, 420);
map.compress(Bitmap.CompressFormat.JPEG, 25, out);
photo = out.toByteArray();
intTobyte(photo.length); // 图片的长度
System.out
.println("camera-----------------565----------相册图片的长度-----"
+ photo.length);
cam_photo.setImageBitmap(map); 这是我的,测试手机为小米,酷派,索爱

解决方案 »

  1.   

    为啥我这测试每次照相保存后,相册里面读取不到。
    private void getAllSDImageFolder() {
            String[] projection = new String[] { MediaStore.Images.Media._ID,
                            MediaStore.Images.Media.BUCKET_ID, // 直接包含该图片文件的文件夹ID,防止在不同下的文件夹重名
                            MediaStore.Images.Media.BUCKET_DISPLAY_NAME, // 直接包含该图片文件的文件夹名
                            MediaStore.Images.Media.DISPLAY_NAME, // 图片文件名
                            MediaStore.Images.Media.DATA, // 图片绝对路径
                            "count("+MediaStore.Images.Media._ID+")"//统计当前文件夹下共有多少张图片
            };
            String selection = " 0==0) group by bucket_display_name --(";
            
            ContentResolver cr = AlbumlistFragment.this.getActivity().getContentResolver();
            
            Cursor cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection,null, "");
            
            if(null != cursor){
             while(cursor.moveToNext()){
                    String folderId = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_ID));
                    folderIDS[folderIndex] = folderId;
                    String folder = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
                    folderNames[folderIndex] = folder;
                    long fileId = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media._ID));
                    String finaName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
                    String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
                    int count = cursor.getInt(5);//该文件夹下一共有多少张图片
                    BitmapFactory.Options options = new BitmapFactory.Options();
                    Bitmap bitmap = Thumbnails.getThumbnail(cr, fileId, Thumbnails.MICRO_KIND, options);//获取指定图片缩略片
                    thumbS.add(bitmap);
                    folderIndex++;
                }
                if(!cursor.isClosed()){
                    cursor.close();
                }
                
                listview.setAdapter(new ItemAdapter());
            }
    }