0

i have a problem with multiple screen in android.

after i read this web pages :

https://developer.android.com/guide/practices/screens_support.html developer.android.com/training/multiscreen/screensizes.html

i tried to change my activity to a multiple screen layout with adding the smallest screen width layout directories :

layout-sw320dp

layout-sw320dp-land

layout-sw480dp

layout-sw480dp-land

layout-sw600dp

layout-sw600dp-land

layout-sw720dp

layout-sw720dp-land

my activity :

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:id="@+id/activity_main"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@color/background"
          tools:context="com.example.aref.calculator.MainActivity"
          android:orientation="vertical">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/lin"
    android:orientation="vertical">


    <EditText
        android:id="@+id/etInput"
        android:layout_height="163dp"
        android:background="@android:color/transparent"
        android:cursorVisible="false"
        android:gravity="end|center"
        android:hint="@string/zero"
        android:inputType="numberSigned"
        android:padding="16dp"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:textColor="@android:color/black"
        android:textColorHint="@android:color/darker_gray"
        android:textCursorDrawable="@null"
        android:textSize="50sp"
        android:layout_width="match_parent" />


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="2dp"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <Button
                android:id="@+id/btnMc"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:background="@drawable/btn_selector"
                android:text="@string/mc" />

            <Button
                android:id="@+id/btnMemory"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector"
                android:text="@string/nullMemory" />

            <Button
                android:id="@+id/btnSeven"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/seven" />

            <Button
                android:id="@+id/btnFour"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/four" />

            <Button
                android:id="@+id/btnOne"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/one" />

            <Button
                android:id="@+id/btnZero"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/zero" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <Button
                android:id="@+id/btnMPlus"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:background="@drawable/btn_selector"
                android:text="@string/mPlus" />

            <Button
                android:id="@+id/btnClear"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector1"
                android:text="@string/clear" />

            <Button
                android:id="@+id/btnEight"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/eight" />

            <Button
                android:id="@+id/btnFive"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/five" />

            <Button
                android:id="@+id/btnTwo"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/two" />

            <Button
                android:id="@+id/btnPoint"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector1"
                android:text="@string/point" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <Button
                android:id="@+id/btnMMinus"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:background="@drawable/btn_selector"
                android:text="@string/mMinus" />

            <Button
                android:id="@+id/btnAllClear"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector1"
                android:text="@string/AllClear" />

            <Button
                android:id="@+id/btnNine"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/nine" />

            <Button
                android:id="@+id/btnSix"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/six" />

            <Button
                android:id="@+id/btnThree"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector2"
                android:text="@string/three" />

            <Button
                android:id="@+id/btnEqual"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector1"
                android:text="@string/equal" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <Button
                android:id="@+id/btnMr"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:background="@drawable/btn_selector"
                android:text="@string/mr" />

            <Button
                android:id="@+id/btnMod"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector3"
                android:text="@string/mod" />

            <Button
                android:id="@+id/btnDiv"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector3"
                android:text="@string/div" />

            <Button
                android:id="@+id/btnMul"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector3"
                android:text="@string/mul" />

            <Button
                android:id="@+id/btnPlus"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector3"
                android:text="@string/plus" />

            <Button
                android:id="@+id/btnMin"
                android:layout_width="@dimen/btn_width_small"
                android:layout_height="@dimen/btn_height_small"
                android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
                android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
                android:layout_marginTop="@dimen/btn_margin_top"
                android:background="@drawable/btn_selector3"
                android:text="@string/minus" />

        </LinearLayout>


    </LinearLayout>

</LinearLayout>

for example my problem is in "layout-sw320dp" i design the layout for the nexus 5x when i change device for example to nexus 4 or nexus s layout becomes unfit

I M A G E : http://s8.picofile.com/file/8299930926/564684.png

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
AREF
  • 125
  • 10

2 Answers2

0

You're setting fixed width buttons. That's never going to work well across devices. Use another technique. For example, if you want 4 equally sized buttons, put each row as a linear layout and assign them all 0dp width and a weight of 1, so they'll be made equally large.

Gabe Sechan
  • 90,003
  • 9
  • 87
  • 127
  • ok tnx , if my layout have a some other elemnts like imageview , switch , spinner , .... what i do to do ?? – AREF Jul 08 '17 at 08:58
  • All depends on the total layout. But in general, avoid fixed widths and heights. – Gabe Sechan Jul 08 '17 at 09:01
  • thank you .can you short explanation about of weight attribute ? – AREF Jul 08 '17 at 09:32
  • Weights work with linear layouts. Basically if you set your width to 0, any extra space I the layout is divided between those views, in proportion with the weights – Gabe Sechan Jul 08 '17 at 14:48
0

You create Linear layout and use weightsum .so you can use in multiple screen

Sagar Patel
  • 224
  • 1
  • 9