我有一个用于启动画面的活动layout.xml,它基本上显示了我想要的内容。但是,如果我在更大或更小的屏幕设备上打开应用程序,它就不再集中。
有没有办法在电子元件周围放置一个包装材料,并将其高度和宽度放在屏幕上?还有其他选择吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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:orientation="vertical"
android:background="@color/colorPrimaryDark" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="250dp"
android:layout_marginBottom="7dp"
android:text="@string/head_line"
android:textColor="@color/white"
android:textSize="50sp"
android:textStyle="bold" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/ic_launcher_round"
android:layout_gravity="center" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="7dp"
android:text="@string/slogan"
android:textColor="@color/white"
android:textSize="24sp" />
</LinearLayout>
现在,它看起来像这样:
先谢谢你们!
答案 0 :(得分:4)
试试这个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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:background="@color/colorPrimaryDark"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="7dp"
android:text="@string/head_line"
android:textColor="@color/white"
android:textSize="50sp"
android:textStyle="bold" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:srcCompat="@mipmap/ic_launcher_round" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="7dp"
android:text="@string/slogan"
android:textColor="@color/white"
android:textSize="24sp" />
</LinearLayout>
答案 1 :(得分:2)
您可以将android:gravity="center"
添加到LinearLayout
并从顶部TextView
答案 2 :(得分:2)
您正在使用边距来定位您的观看次数。根本不是一个好主意。
你应该做的第一件事就是删除第一个TextView上的上边距(你可以保留下边距,因为你用它来分隔它)。
接下来,我们想要使用LinearLayout的layout_gravity并将其设置为Center。但我们还需要将 layout_width 和 layout_height 设置为 wrap_content 。
我拿了你的布局文件并对其进行了一些更改。不要复制并粘贴它,因为我将ImageView更改为TextView并删除了对资源的引用(因此我可以在Android Studio中轻松编辑它),但结构上这就是您想要的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:background="@color/colorPrimaryDark" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="7dp"
android:text="T1"
android:textColor="@android:color/white"
android:textSize="50sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="T2"
android:textColor="@android:color/white"
android:textSize="24sp" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="7dp"
android:text="T3"
android:textColor="@android:color/white"
android:textSize="24sp" />
</LinearLayout>
顺便说一下,您可能还想查看使用ConstraintLayout。对于像这样的简单布局来说,这可能有点过头了,但是熟悉它是很好的,这可能是一个很好的起点。
答案 3 :(得分:1)
将linearLayout和布局重力居中。 LinearLayout应该是这样的。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_gravity="center"
android:orientation="vertical">
<LinearLayout