たとえば、ピクセルがあります。ただし、ピクセルは一定ではありません。高解像度の Android 画面には、より多くのピクセルがあると思います。
次に、密度がありますが、あまり役に立たないようです。ピクセルほど正確ではなく、それでも一定ではありません。高解像度には多数の「密度」があります
画面サイズの 10% のようなものがありますか。プログラマの間でそうするのは一般的ですか?
たとえば、ピクセルがあります。ただし、ピクセルは一定ではありません。高解像度の Android 画面には、より多くのピクセルがあると思います。
次に、密度がありますが、あまり役に立たないようです。ピクセルほど正確ではなく、それでも一定ではありません。高解像度には多数の「密度」があります
画面サイズの 10% のようなものがありますか。プログラマの間でそうするのは一般的ですか?
絶対ピクセルを使用することはありません (またはほとんどありません)。
画面のレイアウトのパーセンテージで作業したい場合は、 を使用しますlayout_weight
。
次の圧縮された XML レイアウト ファイルは、それぞれ独自の 内LinearLayout
に 2 つのウィジェットを含む縦型を示しています。内部の高さは に設定されていますが、「重み」の「合計」(0.9 + 0.1) は 1 に等しいため、最初の内部 は画面の高さの 90% に自動的に拡張され、2 番目の内部は 10% になります。TextView
LinearLayouts
LinearLayouts
0dp
LinearLayout
使用する数字は問題ではありません...9 & 1 または 90 & 10 または 900 & 100 のいずれかです...それは合計と、それぞれがパーセンテージとして表すものになります。残りはレイアウト インフレーション プロセスによって処理され、絶対ピクセルについて知る必要はありません。
<LinearLayout
android:orientation="vertical"
... >
<LinearLayout
...
android:layout_height="0dp"
android:layout_weight="0.9" >
<Textview
... >
</LinearLayout>
<LinearLayout
...
android:layout_height="0dp"
android:layout_weight="0.1" >
<Textview
... >
</LinearLayout>
</LinearLayout>
答えはあなたがそれを持っていないということです。しかし、あなたは画面の%のようにあなた自身を作ることができます。xmlで使用することはできませんが、コードから動的に設定することはできます。画面の高さと幅を取得するには、次の方法を使用できます。
public static int getScreenHeight(Context context) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return(metrics.heightPixels);
}
public static int getScreenWidth(Context context) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return(metrics.widthPixels);
}
私の知る限り、そのようなものは何もありません。
ただし、独自のコードを使用して同じことを実装できます。ディスプレイの幅と高さを取得し、レイアウト パラメータを設定する前に独自の操作を行います。
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
yourLinearLayout.setLayoutParams(new LinearLayout.LayoutParams(
(width/2), height/4)); // assuming that you want 50% width n 25% height of the display.