0

Still quite new to android and such, I was tasked of making a layout that looks exactly like designers sketch. Tried using linear layout and weight, to make sure the elements are in the same place in relation to background no matter the resolution.

End result should look something like this:

While on the actual device it ends up looking like this http:

The misplacement of Date and Temperature seems to be related to the font size(the bigger the font, the more they get misplaced). Why is this caused?

My code:

<?xml version="1.0"?>
<LinearLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/all"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/monday"
android:includeFontPadding="false"
android:orientation="vertical"
tools:context=".MainActivity" >

<LinearLayout
    android:id="@+id/hwrap1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1.70"
    android:orientation="horizontal" >
<!-- wrapper for the first line (Time/day and namedays) -->

    <LinearLayout
        android:id="@+id/bloat1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.20"
        android:orientation="horizontal" >
    </LinearLayout>
 <!-- empty space before day and time -->


    <!-- wrapper around time and day -->

    <TextView
        android:id="@+id/dayOfWeek"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.90"
        android:gravity="top|left"
        android:text="PIRMDIENA"
        android:textAllCaps="true"
        android:textColor="#FFFFFF"
        android:textSize="45dp" />

    <LinearLayout
        android:id="@+id/bloat2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.1"
        android:orientation="horizontal" >
    </LinearLayout>
<!-- empty space before namedays -->

    <TextView
        android:id="@+id/nameDays"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.9"
        android:gravity="left|center"
        android:text="Arnijs, Jorijs, Blobijs"
        android:textColor="#041869"
        android:textSize="60dp" />
</LinearLayout>

<LinearLayout
    android:id="@+id/hwrap2"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1.20"
    android:orientation="horizontal" >
<!-- wrapper around second line (date and temp) -->

    <LinearLayout
        android:id="@+id/bloat3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.33"
        android:orientation="horizontal" >
 <!-- space before date -->
    </LinearLayout>

    <TextView
        android:id="@+id/date"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3.65"
        android:gravity="left|center"
        android:text="DATE"
        android:textAllCaps="true"
        android:textColor="#FFFFFF"
        android:textSize="80dp" />

    <TextView
        android:id="@+id/temperature"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.1"
        android:gravity="center"
        android:text="14c"
        android:textColor="#FFFFFF"
        android:textSize="80dp" />
  </LinearLayout>

  <LinearLayout
    android:id="@+id/hwrap3"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="3.9"
    android:orientation="horizontal" >
   <!-- wrapper around message (3rd line) -->

    <LinearLayout
        android:id="@+id/bloat4"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:orientation="horizontal" >
   <!-- space before message -->
    </LinearLayout>

    <TextView
        android:id="@+id/msg"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="6"
        android:gravity="center|left"
        android:text="Deep text about life... much sense such fullfillment wow"
        android:textColor="#FFFFFF"
        android:textSize="45dp" />

    <LinearLayout
        android:id="@+id/bloat5"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:orientation="horizontal" >
 <!-- space after message -->
    </LinearLayout>
</LinearLayout>

</LinearLayout>
double-beep
  • 5,031
  • 17
  • 33
  • 41
Cooxter
  • 15
  • 2

1 Answers1

1

Try something like this and also use scrollview to fit for all screens

<LinearLayout
    android:id="@+id/hwrap1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <!-- wrapper for the first line (Time/day and namedays) -->

    <LinearLayout
        android:id="@+id/bloat1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.20"
        android:orientation="horizontal" >
    </LinearLayout>
    <!-- empty space before day and time -->


    <!-- wrapper around time and day -->

    <TextView
        android:id="@+id/dayOfWeek"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.90"
        android:gravity="top|left"
        android:text="PIRMDIENA"
        android:textAllCaps="true"
        android:textColor="#FFFFFF"
        android:textSize="45dp" />

    <LinearLayout
        android:id="@+id/bloat2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.1"
        android:orientation="horizontal" >
    </LinearLayout>
    <!-- empty space before namedays -->

    <TextView
        android:id="@+id/nameDays"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.9"
        android:gravity="left|center"
        android:text="Arnijs, Jorijs, Blobijs"
        android:textColor="#041869"
        android:textSize="60dp" />
</LinearLayout>

<LinearLayout
    android:id="@+id/hwrap2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/hwrap1"
    android:orientation="horizontal" >

    <!-- wrapper around second line (date and temp) -->

    <LinearLayout
        android:id="@+id/bloat3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.33"
        android:orientation="horizontal" >

        <!-- space before date -->
    </LinearLayout>

    <TextView
        android:id="@+id/date"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3.65"
        android:text="DATE"
        android:textAllCaps="true"
        android:textColor="#FFFFFF"
        android:textSize="80sp" />

    <TextView
        android:id="@+id/temperature"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.1"
        android:text="14c"
        android:textColor="#FFFFFF"
        android:textSize="80sp" />
</LinearLayout>

<LinearLayout
    android:id="@+id/hwrap3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/hwrap2"
    android:orientation="horizontal" >

    <!-- wrapper around message (3rd line) -->

    <LinearLayout
        android:id="@+id/bloat4"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:orientation="horizontal" >

        <!-- space before message -->
    </LinearLayout>

    <TextView
        android:id="@+id/msg"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="6"
        android:text="Deep text about life... much sense such fullfillment wow"
        android:textColor="#FFFFFF"
        android:textSize="45dp" />

    <LinearLayout
        android:id="@+id/bloat5"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:orientation="horizontal" >

        <!-- space after message -->
    </LinearLayout>
</LinearLayout>

keshav
  • 3,235
  • 1
  • 16
  • 22