Размеры в раскладках Android? - PullRequest
0 голосов
/ 28 января 2012

Это сбивает меня с толку до конца света.У меня 4,5-дюймовый экран с разрешением 480x800 пикселей, и я не знаю, какое разрешение экрана для экрана или какой-либо другой экран в этом отношении.Допустим, я хочу сделать это:

enter image description here

И каждая красная рамка будет изображением, идущим с одной стороны экрана на другую, а синяя рамка будет другой вещью(ImageButton или что-то).Как я могу определить разрешение экрана и количество пикселей для каждого изображения ?!Это должно быть просто, но это сбивает с толку.

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Есть два варианта:

1.определить макет в XML

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    android:weightSum="7"

    android:orientation="vertical"
    android:gravity="center_horizontal" 
>
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="0dp"

        android:layout_weight="2"

        android:text="button"    
    />

    <View 
        android:layout_width="match_parent"
        android:layout_height="0dp"

        android:layout_weight="1"

        android:background="#FFF"
    />
    <View 
        android:layout_width="match_parent"
        android:layout_height="0dp"

        android:layout_weight="1"

        android:background="#0FF"
    />
    <View 
        android:layout_width="match_parent"
        android:layout_height="0dp"

        android:layout_weight="1"

        android:background="#F0F"
    />
    <View 
        android:layout_width="match_parent"
        android:layout_height="0dp"

        android:layout_weight="1"

        android:background="#FF0"
    />
    <View 
        android:layout_width="match_parent"
        android:layout_height="0dp"

        android:layout_weight="1"

        android:background="#000"
    />
</LinearLayout>

** 2. Определить макет в коде **

Я не буду вдаваться в подробности здесь, вы можете получить все цифрыот DisplayMetrics класс как этот:

DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
0 голосов
/ 28 января 2012

Настоятельно рекомендуется, чтобы вы не жестко программировали высоты и ширину вещей. Различные возможные плотности, на которых может работать ваше приложение, являются точной причиной, по которой вы хотите избежать ручной настройки размера.

Вместо этого вы можете использовать такие вещи, как wrap_content и fill_parent. Вы можете создать то, что вам нужно, с помощью LinearLayout с помощью ImageButton и всех ImageViews внутри него. Затем вы можете установить в своих ImaveViews высоту = "wrap_content" и ширину = "fill_parent". Таким образом, теперь независимо от того, на каком экране вы находитесь, они всегда будут отображаться на полную ширину и ту же высоту, что и изображение, которое вы отображаете.

Прочтите о макетах здесь обратите особое внимание на раздел LinearLayouts.

найдите пример здесь , чтобы начать с.

Также учитывайте тот факт, что не каждое устройство, на котором может работать ваше приложение, имеет такой же большой размер, как ваше. У многих из них не будет места для отображения 6 строк, если вы не хотите, чтобы ваши высоты становились слишком маленькими, чтобы быть полезными. Если вам нужно отобразить столько строк, вам также нужно обернуть LinearLayout в ScrollView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...