アクティビティでは、密度に依存しないピクセルをピクセルに変換する必要があります。onCreateでこのメソッドを使用してみました
float pix = dipValue * getResources().getDisplayMetrics().density;
pixel = Math.round(pix);
別の方法を試しました
Resources r = getResources();
float pix = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 35,r.getDisplayMetrics());
value = Math.round(pix);
どちらも同じ値を生成しています。問題は方法ではなく、リソースにあると思います。マニフェストファイルに次のような変更を加える必要があります
<supports-screens android:resizeable=["true"| "false"]
android:smallScreens=["true" | "false"]
android:normalScreens=["true" | "false"]
android:largeScreens=["true" | "false"]
android:xlargeScreens=["true" | "false"]
android:anyDensity=["true" | "false"]
android:requiresSmallestWidthDp="integer"
android:compatibleWidthLimitDp="integer"
android:largestWidthLimitDp="integer"/>
私と同じような質問があります。しかし、それは私の問題を解決していません。手伝ってください。