2015-10-12 36 views
1

我有巨大尺寸的100幅圖像(500 * 700,401 * 800,2345 * 3567),所以我希望所有這些圖像高度相同220.下面我執行圖像的縱橫比計算。我想設置所有巨大尺寸圖像的固定高度。我正在使用一些算術公式來計算縱橫比,但是所有圖像的寬度都是相同的,而且高度是不同的,但我希望高度是固定的。如何獲得固定高度?感謝您的欣賞。Android:如何計算圖像的寬高比?

這裏是圖像寬高比

if (bitmapResizeImage != null) { 
    int originalWidth = bitmapResizeImage.getWidth(); 
    int originalHeight = bitmapResizeImage.getHeight(); 
    Log.e("originalWidth "," = " + originalWidth +" originalHeight = " + originalHeight+" of imgElement = " + imgElement+ " Notation = " +all_Post.getStrNotationNo()); 

    float aspect_ratio = originalWidth/originalHeight ; 
    Log.e("aspect_ratio "," = " + aspect_ratio); 

    float adjusted_width = 220 * originalWidth/originalHeight ; 
    Log.e("adjusted_width "," = " + adjusted_width); 
    float adjusted_height = originalWidth * originalHeight/originalWidth ; 
    Log.e("adjusted_height "," = " + adjusted_height); 

    pBar.setVisibility(View.GONE); 
    imageView.setImageBitmap(bitmapResizeImage); 
} 
+0

和你在關於'aspect_ratio'的logcat中看到什麼? – pskink

+0

這個公式可以用一些基本的數學被簡化:'originalWidth * originalHeight/originalWidth' – Henry

+0

ASPECT_RATIO爲0.0 – androidTag

回答

5

我的計算代碼,您應該嘗試typecasting

float aspect_ratio = (float)originalWidth/(float)originalHeight ; 

因爲這個類型轉換操作會返回一個浮點值。

整數通過整數分將給出結果作爲整數,其將被分配到一個浮點變量。因此,操作數需要轉換爲浮點數,以確保結果計算爲float。

+0

我用你的代碼行的變化。但即使沒有得到適當的寬度和高度。意味着高度明智的寬度 – androidTag

+0

浮子ASPECT_RATIO =(浮點)originalWidth /(浮點)originalHeight;漂浮newImageWidth = ASPECT_RATIO *(浮點)originalWidth;這是正確的嗎 ? – androidTag

+0

是的,它是正確的。檢查您是否在originalWidth和originalHeight中獲得了正確的值 –

0

除了Priyank發佈的內容之外,一旦您擁有正確的值 ,您可以在ImageView上使用setImageBitmap之前創建一個帶有新維度的位圖。使用

imageView.setImageBitmap(Bitmap.createBitmap(int width, int height, Bitmap.Config config));