Координаты кнопок Android Java

Я хочу изменить размер кнопок, если экран большой. Так что я сделал это с помощью этого метода. Я получил размер экрана и поставил ширину кнопки screenWidth/4 . Но сейчас я не могу поставить кнопки. Я использовал относительное расположение, и я положил их положение из xml, но когда я изменяю их размеры, они лежат друг на друге в позиции 0,0.это на Nexus Sэто на нексусе 10

Вот XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/pink"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.vahe_muradyan.yourquote.MainActivity" >

    <Button
        android:id="@+id/openCamera"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="71dp"
        android:background="@drawable/roundbuttom"
        android:text="@string/camera" />

    <Button
        android:id="@+id/openGallery"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_alignLeft="@+id/openDefaults"
        android:layout_below="@+id/openDefaults"
        android:layout_marginTop="43dp"
        android:background="@drawable/roundbuttom"
        android:text="@string/gallery" />

    <Button
        android:id="@+id/openDefaults"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_alignLeft="@+id/openCamera"
        android:layout_centerVertical="true"
        android:background="@drawable/roundbuttom"
        android:text="@string/defaults" />

</RelativeLayout>

Я загрузил изображения на Nexus S и Nexus 10 .

1 ответ

Решение

Добавить размеры на размер экрана

вам нужно создать в папке res новые папки с именем

Значения-sw600dp

и в папке нормальных значений создайте XML-файл с именем

dimens.xml

в этот файл напишите

<dimen name="button_width">70dp</dimen>
<dimen name="button_height>70dp</dimen>
<dimen name="button_text_size">14sp</dimen>

в ваших значениях-sw600dp создайте еще один файл измерения.xml

в нем напиши

<dimen name="button_width">140dp</dimen>
<dimen name="button_height>140dp</dimen>
<dimen name="button_text_size">20sp</dimen>

// играем с размерами, чтобы найти подходящую

в вашем XML-файле напишите это:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/pink"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.vahe_muradyan.yourquote.MainActivity" >

    <Button
        android:id="@+id/openCamera"
        android:layout_width="@dimen/button_width"
        android:layout_height="@dimen/button_height"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="71dp"
        android:background="@drawable/roundbuttom"
        android:textSize="@dimen/button_text_size"
        android:text="@string/camera" />

    <Button
        android:id="@+id/openGallery"
        android:layout_width="@dimen/button_width"
        android:layout_height="@dimen/button_height"
        android:textSize="@dimen/button_text_size"
        android:layout_alignLeft="@+id/openDefaults"
        android:layout_below="@+id/openDefaults"
        android:layout_marginTop="43dp"
        android:background="@drawable/roundbuttom"
        android:text="@string/gallery" />

    <Button
        android:id="@+id/openDefaults"
        android:layout_width="@dimen/button_width"
        android:layout_height="@dimen/button_height"
        android:textSize="@dimen/button_text_size"
        android:layout_alignLeft="@+id/openCamera"
        android:layout_centerVertical="true"
        android:background="@drawable/roundbuttom"
        android:text="@string/defaults" />

</RelativeLayout>

Система выберет правильные значения в зависимости от устройства, на котором вы запускаете приложение.

Кнопки будут достаточно большими (при условии, что вы дадите хорошие значения в файле values-sw600dp/ sizess.xml)

Это дерево папок:введите описание изображения здесь

повеселись!

Другие вопросы по тегам