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 模拟器没有检测到正确的屏幕尺寸?的主要内容,如果未能解决你的问题,请参考以下文章