FrameLayout fr=(FrameLayout)findViewById(R.id.FrameLayout01); 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 
//获取这个图片的宽和高
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/test.jpg", options); //
options.inJustDecodeBounds = false; 
//计算缩放比
int be = (int)(options.outHeight / (float)200); 
if (be <= 0) 
be = 1;  
options.inSampleSize = be;  
//重新读入图片,注意这次要把options.inJustDecodeBounds 设为false
bitmap=BitmapFactory.decodeFile("/sdcard/test.jpg",options); 
int w = bitmap.getWidth(); 
int h = bitmap.getHeight(); 
ImageView iv=new ImageView(this); 
iv.setImageBitmap(bitmap);

 

获得本地数据的图片

 Bitmap bm = null;
  //外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口
            ContentResolver resolver = getContentResolver();
            //此处的用于判断接收的Activity是不是你想要的那个
            if (requestCode == IMAGE_CODE) {
                try {
                    Uri originalUri = data.getData();        //获得图片的uri 
                    bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);        
                     //显得到bitmap图片
                     imgShow.setImageBitmap(bm);

//    这里开始的第二部分,获取图片的路径:

                    String[] proj = {MediaStore.Images.Media.DATA};


                    Cursor cursor = managedQuery(originalUri, {MediaStore.Images.Media.DATA}, null, null, null);

                    //按我个人理解 这个是获得用户选择的图片的索引值

                    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

                    //将光标移至开头 ,这个很重要,不小心很容易引起越界

                    cursor.moveToFirst();

                    //最后根据索引值获取图片路径

                    String path = cursor.getString(column_index);
                     imgPath.setText(path);
                 }catch (IOException e) {

                    Log.e("TAG-->Error",e.toString()); 

                }

            }

        }