如何解决Android应用程序中的对齐问题

时间:2018-12-15 06:17:51

标签: java android android-studio alignment

我是android开发的初学者,目前正在android studio中创建一个项目,因此我创建了一个包含1个小图片,2个文本框和1个按钮的登录页面,但我希望它们能够在所有类型的设备中对齐当我尝试使用Redmi 3s 5英寸屏幕的设备时,看起来不错,但是当尝试使用其他设备时,它的对齐方式似乎不正确,所以有人可以告诉我如何为每种屏幕尺寸的设备对齐(例如4.5英寸,5英寸,5.5英寸,6英寸等)。

预先感谢

这是代码:

<RelativeLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:hardwareAccelerated="true"
android:background="@color/white"
tools:context=".MainActivity">

<View
    android:id="@+id/view2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="0dp"
    android:layout_marginTop="0dp"
    android:hardwareAccelerated="true" />


<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="37dp"
    android:background="@color/blend"
    android:contentDescription="@string/todo"
    app:srcCompat="@drawable/imagelogo" />

<EditText
    android:id="@+id/editText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginStart="58dp"
    android:layout_marginBottom="294dp"
    android:ems="10"
    android:hint="@string/User_name"
    android:inputType="text" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginEnd="147dp"
    android:layout_marginBottom="227dp"
    android:ems="10"
    android:hint="@string/Pass_word"
    android:inputType="textPassword" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginStart="97dp"
    android:layout_marginBottom="138dp"
    android:ems="13"
    android:background="@color/colorPrimary"
    android:text="@string/login" />

和输出: Design + Blueprint

所以我希望所有类型的设备中的所有物品都放在同一位置

1 个答案:

答案 0 :(得分:1)

将以下内容添加到您的项目级Gradle文件中:

compile 'com.intuit.sdp:sdp-android:1.0.5'

用法:在代码中,无论您要指定 10dp 之类的尺寸,都将其更改为 @ dimen / _10sdp 。就像我在此示例中指定的ImageView。

        <ImageView
            android:id="@+id/your_image"
            android:layout_marginTop="@dimen/_10sdp"
            android:layout_marginBottom="@dimen/_10sdp"
            android:layout_width="@dimen/_100sdp"
            android:layout_height="@dimen/_100sdp"
            android:src="@drawable/logo"/>

这将使您的应用程序在不同设备上的外观相同。