2012-08-03 47 views
0

我想搬到我在我的XML:如何在代碼中設置ListView的填充?

android:paddingLeft="12dp" 
android:paddingRight="12dp" 

我的代碼:

ListView listView = getListView(); 
listView.setPadding(12, 0, 12, 0); 

的問題是出現在「setPadding」通話只像素設置它,而不是dp的。任何人都知道如何在代碼中正確設置它?

回答

2

你必須手動進行轉換:

float scale = getResources().getDisplayMetrics().density; 
// Convert the dps to pixels, based on density scale 
int sizeInPx = (int) (sizeInDp*scale + 0.5f); 
0

DP只是DPI/160。

試試這個:

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 
float dp = dm.densityDpi/160; 

listView.setPadding(12*dp, 0, 12*dp, 0);