gpt4 book ai didi

android - 如何在屏幕的特定位置对齐 View ,在多种屏幕分辨率下保持一致?

转载 作者:行者123 更新时间:2023-11-29 02:09:07 25 4
gpt4 key购买 nike

我在对齐按钮时遇到了一些问题。我想让它们(大约)在我屏幕的 1/3 和 2/3 处(我在下面提供了一个屏幕截图以使事情更清楚)我的代码如下:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mainbg">

<Button
android:text="@string/topbutton"
android:background="@drawable/silvertablesbuttonbgkort"
android:id="@+id/topbutton"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center|center_vertical">
</Button>

<Button
android:text="@string/midbutton"
android:background="@drawable/silvertablesbuttonbglang"
android:id="@+id/midbutton"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center|center_vertical">
</Button>


<RelativeLayout
android:id="@+id/underbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >

<Button
android:text="@string/underbartekst"
android:background="@drawable/silvertablesunderbar"
android:id="@+id/underbarbutton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:textSize="20dp"
android:gravity="left|center_vertical" >
</Button>

</RelativeLayout>

我试图让它看起来像这样:(很抱歉,如果在这里发布屏幕截图模型不受欢迎,我只是想不出更好的方法来清理我正在尝试的内容做)

看来我不能发布图片,因为我在这里太新了......所以这里是截图的链接:http://i.imgur.com/l3b3z.png

我最初的想法只是在两个按钮周围包裹一个垂直线性布局,并在两者之间放置空 TextView ,如果这个应用程序打算在一个屏幕尺寸上运行,这实际上是可行的,但我很漂亮确保它会在每部手机上用另一个屏幕分辨率搞砸。我通过使用带有 android:layout_alignParentBottom="true"的相对布局解决了底部栏的这个问题,但我真的想不出一种方法来捕捉到 1/3 或 2/3。有没有一种方法可以适用于各种屏幕分辨率?

编辑:我解决了我的问题!我试图将其发布为答案,但我不能在 8 小时内发布。那时会做,但现在,我只是将其作为编辑发布在这里:

我在屏幕中间放置了一个 0x0 的 TextView,并在其上方和下方放置了 RelativeLayouts,以填满屏幕。然后我在这些布局的中间放置了两个 0x0 的 TextView,并在这些布局中放置了两个新的 RelativeLayout。一个在最高 TextView 下方,一个在最低 TextView 上方。我将我的按钮放在这些布局的中心。它就像一个魅力,除了代码本身之外不依赖任何东西。这是我的代码:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mainbg">


<TextView
android:text=" "
android:id="@+id/ankermidden"
android:layout_centerVertical="true"
android:layout_width="0dp"
android:layout_height="0dp">
</TextView>

<RelativeLayout
android:id="@+id/ankerveldboven"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ankermidden">

<TextView
android:text=" "
android:id="@+id/ankerboven"
android:layout_centerVertical="true"
android:layout_width="0dp"
android:layout_height="0dp">
</TextView>

<RelativeLayout
android:id="@+id/ankerveldmidboven"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ankerboven">

<Button
android:text="@string/topbutton"
android:background="@drawable/silvertablesbuttonbgkort"
android:id="@+id/topbutton"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center|center_vertical">
</Button>

</RelativeLayout>

</RelativeLayout>


<RelativeLayout
android:id="@+id/ankerveldonder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ankermidden">

<TextView
android:text=" "
android:id="@+id/ankeronder"
android:layout_centerVertical="true"
android:layout_width="0dp"
android:layout_height="0dp">
</TextView>

<RelativeLayout
android:id="@+id/ankerveldmidonder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ankeronder">

<Button
android:text="@string/midbutton"
android:background="@drawable/silvertablesbuttonbglang"
android:id="@+id/midbutton"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center|center_vertical">
</Button>

</RelativeLayout>

</RelativeLayout>

<RelativeLayout
android:id="@+id/underbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >

<Button
android:text="@string/underbartekst"
android:background="@drawable/silvertablesunderbar"
android:id="@+id/underbarbutton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:textSize="20dp"
android:gravity="left|center_vertical" >
</Button>

</RelativeLayout>

是的,这比我想象的要容易。

最佳答案

我找到了解决办法!一种完全相对于自身,完全不依赖于像素或密度像素的。

我在屏幕中间放置了一个 0x0 的 TextView,并在其上方和下方放置了 RelativeLayouts,以填满屏幕。

然后我在这些布局的中间放置了两个 0x0 的 TextView,并在这些布局中放置了两个新的 RelativeLayout。一个在最高 TextView 下方,一个在最低 TextView 上方。我将按钮放在这些布局的中心。

它就像一个魅力,除了代码本身之外不依赖任何东西。

现在这是我的代码:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mainbg">


<TextView
android:text=" "
android:id="@+id/ankermidden"
android:layout_centerVertical="true"
android:layout_width="0dp"
android:layout_height="0dp">
</TextView>

<RelativeLayout
android:id="@+id/ankerveldboven"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ankermidden">

<TextView
android:text=" "
android:id="@+id/ankerboven"
android:layout_centerVertical="true"
android:layout_width="0dp"
android:layout_height="0dp">
</TextView>

<RelativeLayout
android:id="@+id/ankerveldmidboven"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ankerboven">

<Button
android:text="@string/topbutton"
android:background="@drawable/silvertablesbuttonbgkort"
android:id="@+id/topbutton"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center|center_vertical">
</Button>

</RelativeLayout>

</RelativeLayout>


<RelativeLayout
android:id="@+id/ankerveldonder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ankermidden">

<TextView
android:text=" "
android:id="@+id/ankeronder"
android:layout_centerVertical="true"
android:layout_width="0dp"
android:layout_height="0dp">
</TextView>

<RelativeLayout
android:id="@+id/ankerveldmidonder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ankeronder">

<Button
android:text="@string/midbutton"
android:background="@drawable/silvertablesbuttonbglang"
android:id="@+id/midbutton"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center|center_vertical">
</Button>

</RelativeLayout>

</RelativeLayout>

<RelativeLayout
android:id="@+id/underbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >

<Button
android:text="@string/underbartekst"
android:background="@drawable/silvertablesunderbar"
android:id="@+id/underbarbutton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:textSize="20dp"
android:gravity="left|center_vertical" >
</Button>

</RelativeLayout>

是的,这比我想象的要容易。

Bill Gary 建议在 dp 中使用边距,这将在不同的屏幕尺寸上保持相同的比例,但经过大量试验后,我在不同的屏幕上再次看起来很奇怪。

在我回到那个之前我会做更多的实验,因为整个浸边距的事情让我很奇怪......应该正确显示的东西没有,而那些不应该正确显示的东西,做,在一些屏幕分辨率上。

我会开始做那些事情的功课,但现在,尽管有点长,但我上面发布的代码对我来说是完美的。

关于android - 如何在屏幕的特定位置对齐 View ,在多种屏幕分辨率下保持一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8468670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com