如何在代码中设置ListView的填充?

时间:2012-08-03 02:07:35

标签: java android eclipse android-layout android-listview

我想移动我在XML中的内容:

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

到我的代码:

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

问题是出现“setPadding”调用只按像素设置,而不是dp。任何人都知道如何在代码中正确设置它?

2 个答案:

答案 0 :(得分:2)

您必须手动进行转换:

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

答案 1 :(得分: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);