我在某些设备上的图像很好,但是在某些小型显示屏手机中,图像的位置不在范围内
帮我解决PLS
<?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">
<ImageView
android:id="@+id/imageView6"
android:layout_width="198dp"
android:layout_height="182dp"
android:layout_marginStart="107dp"
android:layout_marginTop="77dp"
android:layout_marginEnd="107dp"
android:layout_marginBottom="472dp"
android:src="@drawable/hi"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:contentDescription="@string/todo" />
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:0)
通过此代码替换您的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:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/Hi"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.06"/>
</android.support.constraint.ConstraintLayout>
答案 1 :(得分:0)
当您在视图上使用固定大小时,您的屏幕将无响应,因为不同的设备具有不同的屏幕大小,某些屏幕上看起来不错的画面不一定看起来不错,而另一屏幕大小不同的画面。
要解决此问题-不要在视图上使用固定大小-可能会导致屏幕无响应,请对某些constrainLayout使用guidlines 代替:
<androidx.constraintlayout.widget.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">
<ImageView
android:id="@+id/imageView6"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:contentDescription="todo"
android:src="@drawable/common_full_open_on_phone"
app:layout_constraintBottom_toTopOf="@+id/guideline2"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/guideline5"
app:layout_constraintTop_toTopOf="@+id/guideline3"
app:layout_constraintVertical_bias="0.0" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.6" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.8" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.2" />
答案 2 :(得分:0)
使用此库https://github.com/intuit/sdp。它提供了一个称为sdp
(可缩放dp)的新缩放单位,它将根据您的设备自动缩放视图。
答案 3 :(得分:0)
只需删除所有边距和填充(它们最好用于约束布局中较小的详细更改) 并同时使用两者
app:layout_constraintHorizontal_bias =“ 0” app:layout_constraintVertical_bias =“ 0”
偏差用于将您的图像或视图以%步进在显示器上移动,因此它将获取设备的显示器并根据您设置的%偏差应用图像。
与他们一起玩,您将找到解决方案
我猜0.5水平和0.1垂直就可以了
您的ImageView可能看起来像这样
<ImageView
android:id="@+id/imageView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/Hi"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.1"
app:layout_constraintHorizontal_bias="0.5"/>
答案 4 :(得分:0)
在布局中直接使用dp会使屏幕尺寸不同的情况变得更糟。
您可以使用以下库为组件提供灵活的大小 https://github.com/intuit/sdp
,您可以使用以下尺寸:
android:padding="@dimen/_8sdp
对于文本大小,请使用以下库。 https://github.com/intuit/ssp
并将其用于文本大小
android:textSize="@dimen/_10ssp"
答案 5 :(得分:0)
将代码更改为此,并发生app:layoutconstraintHorizontal_bias =“ 0.5” app:layoutconstraintVertical_bias =“ 0.1” enter image description here