android - 用于长屏的 Android Layout 文件夹
问题描述
我正在开发一个支持所有屏幕尺寸的安卓应用程序,但是当涉及到像 18:9 这样的长屏幕时,它会给我带来奇怪的屏幕结果。我有以下布局文件夹“layout,layout-large,layout-xlarge,layout-normal”和 18:9 屏幕比例设备正在使用“layout”文件夹的默认设置 android 可以有不同类型的文件夹来放置这种类型的布局xml 文件仅适用于 18:9 屏幕。或任何其他处理长屏幕的方法。
我的 Layout 文件夹是 layout、layout-large、layout-normal、layout-xlarge、
在这张图片中,它显示了它如何在 18:9 屏幕中溢出我的文本。
我的 activity_main.xml 在这里
`
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:ads="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=".MainActivity"
android:id="@+id/Main_layout"
>
<android.support.constraint.ConstraintLayout
android:layout_width="0dp"
android:layout_height="80dp"
android:background="@drawable/layout_bg"
android:layout_marginTop="2dp"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/Head_layout">
<ImageButton
android:id="@+id/Image_btn_home"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="32dp"
android:layout_marginTop="8dp"
android:background="@drawable/home"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginStart="32dp" />
<TextView
android:id="@+id/text_view_head_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="47dp"
android:layout_marginStart="10dp"
android:layout_marginTop="20dp"
android:text="Hello Animals"
android:textColor="#000000"
android:textSize="45sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/Image_btn_home"
app:layout_constraintRight_toLeftOf="@id/Image_btn_info"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
<ImageButton
android:id="@+id/Image_btn_info"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginBottom="8dp"
android:layout_marginRight="32dp"
android:layout_marginTop="8dp"
android:background="@drawable/info"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/view_pager_container_layout"
android:layout_width="0dp"
android:layout_height="365dp"
android:background="@drawable/layout_bg"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/Head_layout">
<android.support.v4.view.ViewPager
android:id="@+id/View_pager"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="1dp"
android:layout_marginLeft="0dp"
android:layout_marginStart="0dp"
android:layout_marginTop="1dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
</android.support.v4.view.ViewPager>
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/constraintLayout"
android:background="@drawable/layout_bg"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/Navigation_layout"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view_pager_container_layout"
app:layout_constraintVertical_bias="0.0">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="8dp"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/banner_ad_unit_id"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:background="@drawable/layout_bg"
android:layout_width="0dp"
android:layout_height="70dp"
android:layout_marginTop="380dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintVertical_bias="1.0"
android:id="@+id/Navigation_layout"
app:layout_constraintTop_toTopOf="@+id/Head_layout">
<ImageButton
android:id="@+id/Image_btn_left"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="32dp"
android:layout_marginTop="8dp"
android:background="@drawable/left"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginStart="32dp" />
<ImageButton
android:id="@+id/Image_btn_right"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="300dp"
android:layout_marginTop="8dp"
android:background="@drawable/right"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="1.0"
android:layout_marginStart="300dp" />
<ImageButton
android:id="@+id/Image_btn_play"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="0dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginStart="0dp"
android:layout_marginTop="8dp"
android:background="@drawable/play"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toRightOf="@+id/Image_btn_left"
app:layout_constraintRight_toLeftOf="@+id/Image_btn_right"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
`
解决方案
您是否尝试过使用约束布局?为不同的屏幕尺寸创建响应式布局的最佳方法是使用 ConstraintLayout 作为 UI 中的基本布局。ConstraintLayout 允许您根据与布局中其他视图的空间关系为每个视图指定位置和大小。这样,所有视图都可以随着屏幕尺寸的变化一起移动和拉伸。
推荐阅读
- python - 无法在 python 3 mac OSX Big Sur 中安装 pip
- python - AttributeError:“ItemIterator”对象没有属性“用户”
- oracle - 删除需要相当长的时间
- python - 由于删除了尾随空格,Pandas 数据帧不会彼此相等
- wordpress - Elementor:手机上隐藏了一个部分
- insert - 如何根据条件向 pgadmin 中的数据库添加批量值?
- javascript - Javascript如何解析csv以创建新列
- javascript - 输入输入标签时如何使占位符逐个字符消失
- python - 在 Excel 更新时触发重命名文件夹中的图像
- c++ - 如何将opencv和自己的程序构建到dll中