Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android应用程序中的布局位置未针对不同设备进行适当缩放_Android_Xml_Layout_Imageview_Scaling - Fatal编程技术网

android应用程序中的布局位置未针对不同设备进行适当缩放

android应用程序中的布局位置未针对不同设备进行适当缩放,android,xml,layout,imageview,scaling,Android,Xml,Layout,Imageview,Scaling,我使用安卓模拟器设计了我的应用程序,设备设置为Nexus5。我的应用程序中的所有图像都排列得很好 然而,当我尝试将模拟器设置为其他设备(Nexus6、7和9)进行测试时,所有的x和y位置都没有相对于背景图像进行适当的缩放 以下是我的xml代码: <FrameLayout android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_hei

我使用安卓模拟器设计了我的应用程序,设备设置为Nexus5。我的应用程序中的所有图像都排列得很好

然而,当我尝试将模拟器设置为其他设备(Nexus6、7和9)进行测试时,所有的x和y位置都没有相对于背景图像进行适当的缩放

以下是我的xml代码:

<FrameLayout
    android:layout_gravity="center_horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spriteLayout">
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minWidth="25dp"
        android:minHeight="25dp"
        android:layout_gravity="center_vertical"
        android:id="@+id/AustraliaLayout" />
    <RelativeLayout
        android:minWidth="40px"
        android:minHeight="40px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Fishes1Layout" />
    <RelativeLayout
        android:minWidth="20px"
        android:minHeight="20px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Fishes3Layout" />
    <RelativeLayout
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Fishes4Layout" />
    <RelativeLayout
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Fishes5Layout" />
    <RelativeLayout
        android:minWidth="40px"
        android:minHeight="40px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Fishes6Layout" />
    <RelativeLayout
        android:minWidth="15px"
        android:minHeight="15px"
        android:layout_width="15dp"
        android:layout_height="15dp"
        android:id="@+id/Large_Z_Layout" />
    <RelativeLayout
        android:minWidth="12px"
        android:minHeight="12px"
        android:layout_width="10dp"
        android:layout_height="10dp"
        android:id="@+id/Medium_Z_Layout" />
    <RelativeLayout
        android:minWidth="6px"
        android:minHeight="6px"
        android:layout_width="6dp"
        android:layout_height="6dp"
        android:id="@+id/Small_Z_Layout" />
    <RelativeLayout
        android:minWidth="35px"
        android:minHeight="35px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/WombatLayout1" />
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ToadLayout1">
        <RelativeLayout
            android:minWidth="40px"
            android:minHeight="40px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:layout_marginBottom="30dp"
            android:id="@+id/ToadLayout2" />
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/KangarooLayout1">
        <RelativeLayout
            android:minWidth="40px"
            android:minHeight="40px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:layout_marginBottom="30dp"
            android:id="@+id/KangarooLayout2" />
    </RelativeLayout>
    <RelativeLayout
        android:minWidth="35px"
        android:minHeight="35px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/SnakeLayout1">
        <RelativeLayout
            android:minWidth="50px"
            android:minHeight="50px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:layout_marginRight="50dp"
            android:id="@+id/SnakeLayout2" />
    </RelativeLayout>
    <RelativeLayout
        android:minWidth="40px"
        android:minHeight="40px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/BirdLayout" />
    <RelativeLayout
        android:minWidth="30px"
        android:minHeight="30px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Marker1Layout" />
    <RelativeLayout
        android:minWidth="30px"
        android:minHeight="30px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Marker2Layout" />
    <RelativeLayout
        android:minWidth="30px"
        android:minHeight="30px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Marker3Layout" />
    <RelativeLayout
        android:minWidth="30px"
        android:minHeight="30px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Marker4Layout" />
    <RelativeLayout
        android:minWidth="30px"
        android:minHeight="30px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/CarMarkerLayout" />
</FrameLayout>
我对编程非常陌生,我已经尝试了所有我能想到的方法来纠正这个问题。在此问题上的任何帮助都将不胜感激

  • 首先,校正您的装置。使用DP而不是PX
  • 使用
  • ConstraintLayout负责管理定位和 可视化组件(也称为小部件)的大小调整行为 它包含


    要将px转换为dp,请使用此

    public static int Pixel_To_DP(int pixel) {
        return (int) (pixel/ Resources.getSystem().getDisplayMetrics().density);
    }
    

    使用dp代替px谢谢Mohd,但正如我在帖子底部提到的,我确实将像素转换为dp。你正在将dp转换为px,请将px转换为dp。我在回答框中提到了这种方法。你可以使用权重代替静态dp或px值来表示高度和宽度。谢谢IntelliJ Amiya,我将尝试一下!我将其更改为DP,并将FrameLayout更改为ConstraintLayout,但现在我在编译时遇到了一个错误:“二进制XML文件行#1:错误膨胀类android.support.constraint.ConstraintLayout”@Uncle_Timothy有结果吗?我不确定放在哪里在我的Xamarin项目中编译'com.android.support.constraint:constraint布局:1.0.2'。我做了一些研究,显然我把它放在了.gradle文件中,虽然我似乎没有。我尝试通过进入“项目>添加NuGet软件包…”来安装它Xamarin Android Constraint Layout 1.0.2>添加软件包,但它给出了一条消息:谢谢Mohd,我会尝试一下
    private int DP_to_Pixel( double dp )
    {
        return (int) ( dp * Resources.DisplayMetrics.Density );
    }
    
     <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"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    
    
        // YOUR REST WORK
    
        </android.support.constraint.ConstraintLayout>
    
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    
    public static int Pixel_To_DP(int pixel) {
        return (int) (pixel/ Resources.getSystem().getDisplayMetrics().density);
    }