XML にあるものを移動したい:
android:paddingLeft="12dp"
android:paddingRight="12dp"
私のコードに:
ListView listView = getListView();
listView.setPadding(12, 0, 12, 0);
問題は、「setPadding」呼び出しが dp ではなくピクセル単位でのみ設定するように見えることです。これをコードで適切に設定する方法を知っている人はいますか?
XML にあるものを移動したい:
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);