2014-08-29 101 views

回答

1

我有一個ImageView的...我怎麼能知道我的設備上運行時其寬度

的ImageView的測量時,你可以得到的寬度,即晚於運行。然而,你可以得到屏幕的寬度和高度是這樣的:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

int height = metrics.heightPixels; 
int width = metrics.widthPixels; 

如果例如您的ImageView佔用了屏幕的特定部分,你可以使用屏幕的寬度和高度測量。

我該如何知道設備中dpi與pxls之間的轉換比率?

要轉換說20個像素DP做(添加到上面的代碼):

int dp = 20/metrics.density: 

附加:這裏到像素calculator

一個DPI
0

如果您不想使用TreeObserverListener的方式,您可以嘗試讓View進行自我測量,並給出計算後的尺寸。根據我的經驗,這在大多數情況下都行得通,但不是全部;特別是如果View處於某種特殊的動態佈局或者層次結構的排序會阻止以正確的順序計算維度。你可能會找到運氣來指稱這個流行的answer