首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nexus-S/Galaxy SII 480x800分辨率显示480x728在genymotion模拟器上?

Nexus-S/Galaxy SII 480x800分辨率显示480x728在genymotion模拟器上?
EN

Stack Overflow用户
提问于 2014-01-05 06:02:19
回答 2查看 1K关注 0票数 0

我没有480x800设备,所以我使用genymotion仿真器代替。Nexus的规格是480x800,但是当我在应用程序中得到屏幕大小时,它说的是480x728?我想知道这是否也发生在实际设备上,还是仅仅是genymotion模拟器中的一个bug?

代码语言:javascript
复制
@Override
public void onClick( View view )
{
    if ( view == null )
        return;

    View v1 = getActivity().findViewById( R.id.bg );
    Toast.makeText( getActivity(), "height:" + v1.getHeight() + " width:" + v1.getWidth(), Toast.LENGTH_SHORT ).show();
}

我的style.xml里有这些

代码语言:javascript
复制
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowNoTitle">true</item>

这是布局文件

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/bg"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background" >
</RelativeLayout>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-05 08:12:32

实际高度和视图高度的差异是屏幕底部的软件按钮栏的高度(为48 dp)。

确定实际屏幕高度的正确方法取决于设备API版本,并在这里描述:How to get real screen height and width?

使用以下代码片段:

代码语言:javascript
复制
int screenWidth = 0;
int screenHeight = 0;
if (Build.VERSION.SDK_INT >= 11) {
    Point size = new Point();
    try {
        this.getWindowManager().getDefaultDisplay().getRealSize(size);
        screenWidth = size.x;
        screenHeight = size.y;
    } catch (NoSuchMethodError e) {
        Log.i("error", "it can't work");
    }

} else {
    DisplayMetrics metrics = new DisplayMetrics();
    this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
    screenWidth = metrics.widthPixels;
    screenHeight = metrics.heightPixels;
}
票数 0
EN

Stack Overflow用户

发布于 2014-01-05 06:14:55

这显示了活动视图的维度。宽度是正确的,因为该视图跨越显示的全部宽度。但是,高度不是完全分辨率的高度,因为它是完全高度,减去状态栏的高度,减去操作栏的高度。如果要获得显示的真正分辨率,请为API级别13及以上使用以下代码:

代码语言:javascript
复制
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

如果您希望支持低于API 13,则可以使用:

代码语言:javascript
复制
Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();  // deprecated
int height = display.getHeight();  // deprecated
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20930688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档