我读了很多关于这方面的意见,但实际上,在创建了包含(ldpi
,mdpi
,hdpi
等所有布局文件夹并修正所有文件后,我的布局和#39 ; s元素并没有停留在一点上。现在我尝试使用ConstrantLayout
,并尽可能地完成所有绑定,但是我可以。如果这意味着,对于每个显示器的实际结果,我需要显示分辨率/显示尺寸的每种可能组合。这是合乎逻辑的,但它太多了......
已编辑:仅与TextViews有关的问题...
我发现,我的低分辨率手机仍然使用了xxxhdpi的layuot,我认为这个问题。我读到有关添加到Manifest
<support-screen>
构造的内容,但我不确定这是解决问题的正确方法..
<?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:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/cards">
<ImageView
android:id="@+id/card_image"
android:layout_width="0dp"
android:layout_height="227dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/black_h" />
<ImageButton
android:id="@+id/button_confirm"
android:layout_width="47dp"
android:layout_height="43dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:background="@color/TransperantColor"
android:scaleType="centerInside"
android:scaleX="0.7"
android:scaleY="0.7"
android:src="@drawable/confirm_light"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/confirm_light" />
<ImageButton
android:id="@+id/button_home"
android:layout_width="47dp"
android:layout_height="43dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:background="@color/TransperantColor"
android:scaleType="centerInside"
android:scaleX="0.7"
android:scaleY="0.7"
android:src="@drawable/home_light"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/home_light" />
<TextView
android:id="@+id/head_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:textColor="@color/White"
android:textSize="36sp"
app:layout_constraintBottom_toBottomOf="@+id/card_image"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="14dp"
android:textColor="@color/myTextColor"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/head_name" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="6dp"
android:textColor="@color/myTextColor"
android:textSize="17sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:textColor="@color/myTextColor"
android:textSize="17sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="1dp"
android:textColor="@color/myTextColor"
android:textSize="17sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView4" />
<TextView
android:id="@+id/mon_fri_text"
android:layout_width="wrap_content"
android:layout_height="19dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="8dp"
android:layout_marginStart="16dp"
android:textColor="@color/myTextColor"
android:textSize="15sp"
app:layout_constraintBaseline_toBaselineOf="@+id/textView3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/textView3" />
<TextView
android:id="@+id/sat_text"
android:layout_width="wrap_content"
android:layout_height="19dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="25dp"
android:layout_marginRight="8dp"
android:layout_marginStart="25dp"
android:textColor="@color/myTextColor"
android:textSize="15sp"
app:layout_constraintBaseline_toBaselineOf="@+id/textView4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/textView4" />
<TextView
android:id="@+id/sun_text"
android:layout_width="wrap_content"
android:layout_height="19dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="27dp"
android:layout_marginRight="8dp"
android:layout_marginStart="27dp"
android:textColor="@color/myTextColor"
android:textSize="15sp"
app:layout_constraintBaseline_toBaselineOf="@+id/textView5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.008"
app:layout_constraintStart_toEndOf="@+id/textView5" />
<TextView
android:id="@+id/decription_text"
android:layout_width="353dp"
android:layout_height="86dp"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:textColor="@color/myTextColor"
android:textSize="15sp"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sun_text" />
<ImageView
android:id="@+id/imageView11"
android:layout_width="33dp"
android:layout_height="33dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="8dp"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:scaleX="0.8"
android:scaleY="0.8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/decription_text"
app:srcCompat="@drawable/phone_ico" />
<ImageView
android:id="@+id/imageView12"
android:layout_width="33dp"
android:layout_height="29dp"
android:layout_marginBottom="28dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="8dp"
android:layout_marginStart="16dp"
android:layout_marginTop="14dp"
android:scaleX="0.8"
android:scaleY="0.8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView11"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@drawable/geo_ico" />
<TextView
android:id="@+id/phone1_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="8dp"
android:layout_marginStart="10dp"
android:layout_marginTop="18dp"
android:textColor="@color/myTextColor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/imageView11"
app:layout_constraintTop_toBottomOf="@+id/decription_text" />
<TextView
android:id="@+id/phone2_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="8dp"
android:layout_marginStart="10dp"
android:layout_marginTop="4dp"
android:textColor="@color/myTextColor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/imageView11"
app:layout_constraintTop_toBottomOf="@+id/phone1_name" />
<TextView
android:id="@+id/adress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="17dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:textColor="@color/myTextColor"
android:textSize="15sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.025"
app:layout_constraintStart_toEndOf="@+id/imageView12"
app:layout_constraintTop_toBottomOf="@+id/phone2_name" />
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:0)
我将分享我在研究中发现的内容,如果以任何方式我错了,请随时编辑或更正。我的主要来源是documentation page。
AFAIK mdpi,hdpi等更适合可绘制资源,需要支持不同的像素密度。处理屏幕尺寸时,在创建不同的布局时需要考虑两个选项:
1)最小宽度 - 使您能够根据以dps为单位测量的最小宽度提供不同的布局。根据{{3}}:
您可以使用此限定符来确保无论屏幕的当前方向如何,您的应用都至少具有可用于其UI的宽度dps。
为其提供布局资源时,它看起来像layout-sw600dp
2)可用宽度 - 根据当前可用的宽度提供布局。
您可以使用它来指定布局所需的最小宽度,而不是同时使用屏幕尺寸和方向限定符。这通常有助于确定是否使用多窗格布局。
看起来像layout-w600dp
。
以下是您可以提供的一些尺寸:
320dp:典型的手机屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。
480dp:一个大手机屏幕~5“(480x800 mdpi) 600dp:7“平板电脑(600x1024 mdpi) 720dp:10英寸平板电脑(720x1280 mdpi,800x1280 mdpi等)。
但我相信为了完全理解这个概念,您需要从docs页面开始阅读文档。