Android 模拟器没有检测到正确的屏幕尺寸?

Posted

技术标签:

【中文标题】Android 模拟器没有检测到正确的屏幕尺寸?【英文标题】:Android emulator not detecting the correct screen size? 【发布时间】:2017-08-06 08:41:32 【问题描述】:

我正在创建一个需要不同屏幕尺寸布局的应用。我已经搜索了一段时间,并且已经将屏幕规格添加到我的清单中,并为每种屏幕尺寸创建了不同的布局文件夹。

当我使用平板电脑模拟器从 android studio 运行模拟器时,它会根据需要运行 layout-xlarge 文件。但是在所有其他情况下,它只运行 layout 文件。

这对我来说是个问题,因为我还需要 layout-large 文件才能工作。

我想知道这是否与我的代码有关,或者这是一个模拟器问题?

编辑: 安卓清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pckg_name">

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />

<supports-screens android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:xlargeScreens="true"
    android:anyDensity="true" />


<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

</application>

layout-large 中的示例 xml

    <RelativeLayout    
  xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@mipmap/background1">


<Button
    android:id="@+id/create_an_account_initial_page"
    android:layout_
    android:layout_
    android:text="Large screen"
    android:textSize="17sp"
    android:textStyle="bold"
    android:textColor="@android:color/white"
    android:background="@drawable/button_rectangle_red"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="31dp"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"/>



</RelativeLayout>

【问题讨论】:

在 android studio 中,您可以模拟当前流通的手机。这工作正常,当我查看模拟器设置中的“屏幕尺寸”特征时,它显示“大”,然后只读取layout 文件而不是layout-large,但使用平板电脑它可以工作并读取layout-large 文件 改正到平板上面读取正确的layout-xlarge文件 您在模拟什么设备,您希望提供较大的布局? 目前在nexus 6上运行。 【参考方案1】:

检查您的模拟设备尺寸,请参阅以下内容:

xlarge 屏幕至少为 960dp x 720dp

大屏幕至少为 640dp x 480dp

普通屏幕至少为 470dp x 320dp

小屏幕至少为 426dp x 320dp

这将确保它使用正确或错误的设置。

尝试将layout 文件夹重命名为layout-normal

【讨论】:

layout 更改为layout-normal 没有任何改变。我发布了清单和一个示例 xml layout-large 文件 @Phil3992 您是否检查了设备尺寸,以便您期望正常的设备实际上符合正常范围? 所以这个答案有效!我不得不检查屏幕的分辨率,因为 android 给定的屏幕尺寸不能完全正常工作。感谢您的帮助!

以上是关于Android 模拟器没有检测到正确的屏幕尺寸?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.5 新模拟器无法正确显示

pygame可以检测到屏幕的视频模式吗?

检测到适用于 Visual Studio 的 android 模拟器

android 怎么获取当前屏幕的截图

响应式设计:在任何屏幕尺寸中集中一个全屏正方形

有没有办法知道正确的相机预览尺寸是不是与面部检测器兼容(产生检测到的面部)