私のAndroidアプリは480x800ピクセルの解像度で見栄えがしますが、240x400ピクセルのLDPI画面では壊れます。アクティビティで画面のスケーリング係数を取得できることはわかっています。これを使用すると、画面の解像度に応じてgetResources().getDisplayMetrics().density正確な値が得られます。float
私のアプリでは、とを使用し、を使用RelativeLayoutしImageViewて画像のマージンを設定しましたsetMargins()。この方法ではint、上、左、下、右の値にピクセルを使用するため、取得したDPI係数を使用してこれらの値を設定するにはどうすればよいですか?(これはフロートです)。ありますMath.floor()が、ピクセルを使用して非常に特定の場所に画像を配置しています。メソッドによって返されるDPI係数は、小数点以下の桁数が非常に特定されているため、にキャストしintても機能しません。
アップデート
また、lp.setMargins(100,200,0,0);マージンを設定するために使用しますが、デバイスから受け取ったDPI係数を使用するためにどのような変更を加えますか?
PSプログラミングというよりは数学的な問題だと知っていますが、数学が苦手です。ごめんなさい。