1

たとえば、ピクセルがあります。ただし、ピクセルは一定ではありません。高解像度の Android 画面には、より多くのピクセルがあると思います。

次に、密度がありますが、あまり役に立たないようです。ピクセルほど正確ではなく、それでも一定ではありません。高解像度には多数の「密度」があります

画面サイズの 10% のようなものがありますか。プログラマの間でそうするのは一般的ですか?

4

3 に答える 3

3

絶対ピクセルを使用することはありません (またはほとんどありません)。

画面のレイアウトのパーセンテージで作業したい場合は、 を使用しますlayout_weight

次の圧縮された XML レイアウト ファイルは、それぞれ独自の 内LinearLayoutに 2 つのウィジェットを含む縦型を示しています。内部の高さは に設定されていますが、「重み」の「合計」(0.9 + 0.1) は 1 に等しいため、最初の内部 は画面の高さの 90% に自動的に拡張され、2 番目の内部は 10% になります。TextViewLinearLayoutsLinearLayouts0dpLinearLayout

使用する数字は問題ではありません...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>
于 2012-07-06T11:11:22.393 に答える
0

答えはあなたがそれを持っていないということです。しかし、あなたは画面の%のようにあなた自身を作ることができます。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);
}
于 2012-07-06T10:44:19.600 に答える
0

私の知る限り、そのようなものは何もありません。

ただし、独自のコードを使用して同じことを実装できます。ディスプレイの幅と高さを取得し、レイアウト パラメータを設定する前に独自の操作を行います。

    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. 
于 2012-07-06T10:49:48.367 に答える