2013-07-25 107 views
0

通常情況下,我可以使用下面的代碼獲取的圖像的寬度,但它需要API級16 如何獲得高度和圖像時,機器人的寬度的minSdkVersion = 「8」如何獲得的圖像的高度和寬度時機器人:的minSdkVersion =「8」

Cursor cur = mycontext.getContentResolver().query(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, 
       MediaStore.Images.Media._ID + "=?", new String[] { id }, ""); 
string width=cur.getString(cur.getColumnIndex(MediaStore.Images.Media.HEIGHT)); 
+0

確實查找位圖的寬度或imageview的寬工作的方法? –

回答

5

傳遞到範圍只是解碼工廠的選項:

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 

//Returns null, sizes are in the options variable 
BitmapFactory.decodeFile("/sdcard/image.png", options); 
int width = options.outWidth; 
int height = options.outHeight; 
//If you want, the MIME type will also be decoded (if possible) 
String type = options.outMimeType; 

OR

你可以得到他ight和寬度ImageView通過使用getWidth()getHeight()通過雖然這不會給你的圖像的確切寬度和高度,先獲取圖像寬度高度,您需要獲取作爲背景的drawable然後將drawable轉換爲 BitmapDrawable`獲得圖像爲位圖從,你可以得到的寬度和高度,喜歡這裏

Bitmap b = ((BitmapDrawble)imageView.getBackground()).getBitmap(); 
int w = b.getWidth(); 
int h = b.getHeight(); 

或不喜歡這種方式

imageView.setDrawingCacheEnabled(true); 
Bitmap b = imageView.getDrawingCache(); 
int w = b.getWidth(); 
int h = b.getHeight(); 

上面的代碼將會給你當前Imageview大小的位圖類似設備的屏幕截圖

ImageView大小

imageView.getWidth(); 
imageView.getHeight(); 

如果你有繪製的圖像和你想要的大小,你可以得到這樣的方式

Drawable d = getResources().getDrawable(R.drawable.yourimage); 
int h = d.getIntrinsicHeight(); 
int w = d.getIntrinsicWidth(); 
相關問題