Android 其他设备中的布局
嗨,我有一个关于布局的问题。 当我在android studio上启动应用程序时,布局非常完美。 如果我在其他设备中安装应用程序,则所有设备都未对齐(按钮、tex、ecc) 你能帮我吗Android 其他设备中的布局,android,android-layout,Android,Android Layout,嗨,我有一个关于布局的问题。 当我在android studio上启动应用程序时,布局非常完美。 如果我在其他设备中安装应用程序,则所有设备都未对齐(按钮、tex、ecc) 你能帮我吗 有一种制作通用布局的方法吗 这是布局的一个示例: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns
有一种制作通用布局的方法吗 这是布局的一个示例:
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Profilo"
android:background="#FFFFFF">
<TextView
android:id="@+id/tvUserEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_gravity="center"
android:layout_marginStart="121dp"
android:layout_marginLeft="121dp"
android:layout_marginTop="46dp"
android:textSize="30dp" />
<Button
android:id="@+id/btnElenco"
android:layout_width="219dp"
android:layout_height="50dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="93dp"
android:layout_marginLeft="93dp"
android:layout_marginBottom="467dp"
android:background="@drawable/background_button1"
android:text="ELENCO SEGNALAZIONI"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginStart="148dp"
android:layout_marginLeft="148dp"
android:layout_marginTop="78dp"
android:text="ADMIN"
android:textSize="36sp" />
</RelativeLayout>
问题在于您的视图在dp中有长度和边距-这是一种糟糕的做法。您必须为每个密度缩放它们。
这是如何避免这种情况的有一种方法可以制作通用布局。您应该遵循指导原则,设置屏幕(父屏幕)的大小。不同的屏幕具有不同的纵横比,给出绝对值可能会影响布局输出 您可以先使用LinearLayout和RelativeLayout制作布局,然后签出ConstraintLayout 下面是对代码的一个小补丁。它应该更有效。祝你一切顺利
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Profilo"
android:background="#FFFFFF">
<TextView
android:id="@+id/tvUserEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="100dp"
android:layout_marginRight="100dp"
android:layout_marginTop="46dp"
android:textSize="30dp" />
<Button
android:id="@+id/btnElenco"
android:layout_width="219dp"
android:layout_height="50dp"
android:layout_below="@id/textView2"
android:layout_marginTop="150dp"
android:layout_centerHorizontal="true"
android:background="@drawable/background_button1"
android:text="ELENCO SEGNALAZIONI"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/tvUserEmail"
android:text="ADMIN"
android:layout_marginTop="50dp"
android:textSize="36sp" />
</RelativeLayout>
好的,谢谢,我必须删除所有内容还是可以更改代码?@NicolòVolpe您可以将dp值放入一个单独的dimen
变量中,并根据每个屏幕密度缩放dp。对于mdpi、hdpi、xhdpi等,我明天会尝试。