2010-12-06 94 views
1

對於藍色背景上的特定圖像說,我可以在android中獲取其寬度和高度。我可以使用ImageView在屏幕上顯示它。即使如果我保持圖像的背景透明,我可以在屏幕上顯示它。但是,如果我試圖通過編程來找出圖像的寬度或高度,我仍然可以像上一步那樣得到。我想達到的目的是否有任何方法可以讓我得到圖像的確切高度或寬度減去透明背景。Android中的圖像大小

我想這樣做,因爲我試圖實現一個拖/移動手勢。但現在圖像尺寸更多是由於透明背景,我只能將它移動到只有少數部分。

也許我對整個遊戲都很陌生,這就是爲什麼不能用正確的詞來表達我。但希望有人能理解。

謝謝

回答

2

你是如何設置ImageView的?在XML?你怎麼試圖檢索圖像的寬度和高度?假設您使用的是XML,如下所示:

<ImageView 
    android:id="@+id/my_image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/my_image" 
    /> 

您的ImageView將與其包含的圖像大小相同。因此,在代碼中,您可以檢查ImageView的寬度和高度,或者它包含的圖像並獲取相同的數字。但是,如果你正在做這樣的事情:

<ImageView 
    android:id="@+id/my_image" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/my_image" 
    android:scaleType="centerInside" 
    /> 

的圖像可能會比ImageView的小,因此要獲得準確的結果,你可以嘗試類似如下:

ImageView iv = (ImageView)findViewById(R.id.my_image); 
Rect rect = iv.getDrawable().getBounds(); 
int height = rect.height(); 
int width = rect.width(); 

有可能是一個更簡單的方法,但是這個應該起作用。

編輯:如果您的實際圖像大於其內容,並且具有透明背景,則實際上應該在照片編輯程序中將圖像裁剪到其內容。

+0

感謝您的回答。我猜裁剪是唯一的方法。嗯.. gr8我會這樣做 – 2010-12-06 16:32:19