I was making the HomeScreen of my application. After I finished it was the perfect on Design Screen. But it doesn't look anything like that in the Pixel 3a emulator and even worse on my Xiaomi Redmi 4x. How can make it look like Design Screen variant both on the emulator and on my phone.
I tried using ConstraintLayout with View but it didn't work. Any other solutions?
I have uploaded screenshot but it doesn't seem to work
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/main_screen_image"
android:fitsSystemWindows="true"
tools:context=".HomeScreen">
<!-- tools:openDrawer="start"-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/purple_200"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<ImageView
android:id="@+id/homeScreenLogo"
android:layout_width="160dp"
android:layout_height="160dp"
android:layout_gravity="center"
android:layout_marginTop="70dp"
android:src="@drawable/kaznau_logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnAboutUniversity"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="70dp"
android:drawableLeft="@drawable/ic_university"
android:text="@string/s_about_kaznau"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/homeScreenLogo" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnFaculties"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:drawableLeft="@drawable/ic_faculty"
android:text="Факультет"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintBottom_toBottomOf="@+id/btnAboutUniversity"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnAboutUniversity" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnNews"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="8dp"
android:drawableLeft="@drawable/ic_baseline_article_24"
android:text="@string/s_news"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnAboutUniversity" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnEvents"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:drawableLeft="@drawable/ic_baseline_event_24"
android:text="@string/events_name"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintBottom_toBottomOf="@+id/btnNews"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnNews" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnLocations"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="8dp"
android:drawableLeft="@drawable/ic_location"
android:text="@string/s_locations"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnNews" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnCampus"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:drawableLeft="@drawable/ic_campus"
android:text="@string/s_campus"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintBottom_toBottomOf="@+id/btnLocations"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnLocations" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnLinks"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="8dp"
android:drawableLeft="@drawable/ic_links"
android:text="@string/s_links"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnLocations" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnContacts"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:drawableLeft="@drawable/ic_contacts"
android:text="@string/s_contacs"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintBottom_toBottomOf="@+id/btnLinks"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnLinks" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnAgrodamu"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginTop="8dp"
android:text="@string/s_agrodamu"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnLinks" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.drawerlayout.widget.DrawerLayout>
I would not recommend to provide fixed values in the layout which is the reason why it is getting distorted on screen sizes with different densities, rather work with percentage. Also no need to provide outer edge margins to your buttons since you have already provided padding to parent(ConstraintLayout). Just provide left margin to right column buttons. Here is something very similar I would approach. This is for one of the buttons, you can apply the same to rest. Also please refer to the width and bias attributes specifically and adjust them as per your design.
<com.google.android.material.button.MaterialButton
android:id="@+id/btnFaculties"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginLeft="16dp"
android:drawableLeft="@drawable/ic_faculty"
android:text="Факультет"
android:textSize="14sp"
app:cornerRadius="5dp"
app:layout_constraintBottom_toBottomOf="@+id/btnAboutUniversity"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/btnAboutUniversity"
app:layout_constraintWidth_percent="0.2"
app:layout_constraintHorizontal_bias="0.5"/>