在android studio的apk和designer视图中无法获得相同的结果

col17t5w  于 2021-09-29  发布在  Java
关注(0)|答案(3)|浏览(409)

大家好,我是android开发的新手,我试图设计一个活动,我按照我想要的方式设计它,但当我在手机中安装apk时,设计不一样,我检查了所有的限制条件,它们也是正确的,以下是安卓studio和我手机的图片:-手机屏幕截图:-

安卓工作室截图:-

以下是布局代码:-

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".Details_Page">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="234dp"
        android:scaleType="fitXY"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/android_3" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintLayout3"
        android:layout_width="417dp"
        android:layout_height="483dp"
        android:background="@drawable/modern_bg_2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.333"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0">

    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
p4tfgftt

p4tfgftt1#

正如alexander所评论的,您的ui需要是可伸缩的,您需要在视图之间创建相对约束,以便它能够在不同的显示中正确伸缩。
首先,您应该删除 app:layout_constraintHorizontal_bias="0.333"app:layout_constraintVertical_bias="1.0" 因为它们要么在这种情况下不起作用,要么在不同的屏幕大小下伸缩不同。
其次,由于您的图像具有固定的高度,因此实现所需的一个简单方法是使用 margin_top . 为了使曲线背景隐藏图像的一部分,您必须自己找出确切的值。下面是一些例子,我设置了 margin_top 暂定为200dp:

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".Details_Page">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="234dp"
        android:scaleType="fitXY"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/android_3" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintLayout3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="200dp" 
        android:background="@drawable/modern_bg_2">

    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
8nuwlpux

8nuwlpux2#

可以使用relativelayout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".Details_Page">

<ImageView
    android:id="@+id/imageView"
    android:layout_width="0dp"
    android:layout_height="234dp"
    android:scaleType="fitXY"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@drawable/android_3" />

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/constraintLayout3"
    android:layout_width="417dp"
    android:layout_height="483dp"
    android:background="@drawable/modern_bg_2"
    android:layout_below="@+id/imageView"
    android:layout_marginTop="-100dp"
/>

</RelativeLayout>
xjreopfe

xjreopfe3#

在android设备上安装设备信息。然后打开它并找到“显示”选项卡。在那里,你会发现你的屏幕大小是这样的:1080x1920像素。假设您的屏幕大小为1080x2220,请选择具有相同大小的设备。

OR

可以为不同密度的桶创建布局文件夹。有
ldpi:0.75倍或75%(~120 dpi)
mdpi:1x或100%(基本屏幕)(~160 dpi)
hdpi:1.5倍或150%(~240 dpi)
xhdpi:2x或200%(~320 dpi)
xxhdpi:3倍或300%(~480 dpi)
hdpi:4x或400%(~640dpi)
假设一个设备是xhdpi,那么支持xhdpi的布局将只在xhdpi设备上进行缩放。
因此,如果您想为不同密度的桶创建不同的布局文件夹,请右键单击 res 文件夹并选择 new 然后是布局文件夹。
现在从列表中选择密度桶并选择最后一个密度桶。继续执行此操作,直到拥有密度桶的所有布局文件夹。
然后为布局选择设备。假设我在一个xhdpi设备的文件中,所以在布局编辑器中选择一个xhdpi设备。对所有布局文件执行此操作。。
然后针对不同密度的铲斗设计不同的布局。我希望它能帮助你。
如果英语不好,请编辑答案。谢谢

相关问题