回答:
コードに直接
int padding_in_dp = 6; // 6 dps
final float scale = getResources().getDisplayMetrics().density;
int padding_in_px = (int) (padding_in_dp * scale + 0.5f);
getResources()
アクティビティによって継承される関数だと思いますが、カスタムリストビューアダプターでこれらの行を使用しようとしています。電話をかけられない場合、これを行う方法はありますgetResources()
か?
ディメンションを(dpなどで)XMLファイルで定義すると(少なくともほとんどの場合、どちらにしてもより良い)、次のコードを使用してそのピクセル値を取得できます。
context.getResources().getDimensionPixelSize(R.dimen.your_dimension_name)
特定のDPI値のピクセルを計算できます:http : //forum.xda-developers.com/showpost.php?p=6284958&postcount=31
私も同じ問題を抱えています。私が見つけた唯一の解決策(それは本当にあなたを助けにはなりません:))をXmlファイルに設定することです。
コードから密度を取得できる場合は、次の変換を使用できます。「ディップ単位からスクリーンピクセルへの変換は簡単です。ピクセル=ディップ*(密度/ 160)。」(http://developer.android.com/guide/practices/screens_support.htmlから)
編集:画面密度を取得できます:http : //developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi