私の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プログラミングというよりは数学的な問題だと知っていますが、数学が苦手です。ごめんなさい。