如何在代码中设置ListView的填充?
问题描述:
我想搬到我在我的XML:如何在代码中设置ListView的填充?
android:paddingLeft="12dp"
android:paddingRight="12dp"
我的代码:
ListView listView = getListView();
listView.setPadding(12, 0, 12, 0);
的问题是出现在“setPadding”通话只像素设置它,而不是dp的。任何人都知道如何在代码中正确设置它?
答
你必须手动进行转换:
float scale = getResources().getDisplayMetrics().density;
// Convert the dps to pixels, based on density scale
int sizeInPx = (int) (sizeInDp*scale + 0.5f);
答
DP只是DPI/160。
试试这个:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float dp = dm.densityDpi/160;
listView.setPadding(12*dp, 0, 12*dp, 0);