android-用代码的方式获得屏幕的精确大小尺寸

问题描述

用代码的方式获得屏幕的精确大小尺寸

我使用下面的代码来获得屏幕的大小,但是没有得到正确的值。

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int width = display.getWidth();
    int height=display.getHeight();

数据返回平板装置尺寸的大小320 x 480。这个不是正确的值。
我想要的大小尺寸数据值是600 x 1024。

解决方案

我经常使用这个代码,从来没有报错:

Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();

解决方案二:

public static int getScreenWidth(Context context){
    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = windowManager.getDefaultDisplay();
    return display.getWidth();
}
public static int getScreenHeight(Context context){
    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = windowManager.getDefaultDisplay();
    return display.getHeight();
}

解决方案三:

LZ你程序中width的单位是px, 你说的600可能是dp值,可以使用下面的代码来验证一下:

final float scale = context.getResources().getDisplayMetrics().density;

打印出scale来看下,如果scale = 320/600 = 0.5333333的话,说明你所需要的600单位应该是dp。

解决方案四:

过期了,这个方法过期了,然后呢?

时间: 2024-12-21 20:20:09

android-用代码的方式获得屏幕的精确大小尺寸的相关文章

Android在代码中按照SP设置字体的大小

private void init(){ mTextView=(TextView) findViewById(R.id.textView); mTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20); }

android http POST请求方式向服务其发送数据不成功 贴出代码求大神帮解决一下

问题描述 android http POST请求方式向服务其发送数据不成功 贴出代码求大神帮解决一下 new Thread(new Runnable() { @Override public void run() { String szSrc = ""abcdefghijkl123456789123"" ; byte[] encoded = ThreeDes.encryptMode(keyBytes szSrc.getBytes()); try { /* Strin

Android实现截屏方式整理(总结)

本文介绍了Android 实现截屏方式整理,分享给大家.希望对大家有帮助 可能的需求: 截自己的屏 截所有的屏 带导航栏截屏 不带导航栏截屏 截屏并编辑选取一部分 自动截取某个空间或者布局 截取长图 在后台去截屏 1.只截取自己应用内部界面 1.1 截取除了导航栏之外的屏幕 View dView = getWindow().getDecorView(); dView.setDrawingCacheEnabled(true); dView.buildDrawingCache(); Bitmap

android如何在fragment中设置屏幕的上半部分区域有触摸事件?

问题描述 android如何在fragment中设置屏幕的上半部分区域有触摸事件? 我设置了一个swiperefreshlistview,但是列表刷新的touch方法跟列表的滑动冲突了,请问下在fragment中怎么设置区域监听的 解决方案 列表布局是占满整个fragment么?如果不是的话,可以在xml布局中对部分区域设置点击无效,如果是占满fragment的话,但是想对其中一块区域监听,那就直接在代码中判断是否在那个区域范围内再做操作了 解决方案二: 在fragment上部分添加一个view

详解Android四种存储方式_Android

在Android程序开发中我们经常遇到四种数据存储方式,每种存储方式都各有不同:以下我分别列举了Android开发中的不同存储方式的特点 一,Preferences Preferences是一个较轻量级的存储数据的方法,具体使用方法: 在A中保存值: SharedPreferences.Editor sharedata = getSharedPreferences("data", 0).edit(); sharedata.putString("name","

Android常用代码之普通及系统权限静默安装APK

本文主要介绍程序如何安装apk,包括普通模式安装和系统权限静默安装. 如果是非系统应用请直接查看:Android常用代码之APK root权限静默安装,查看更完美的解决方案. 1.普通模式安装,调用系统Intent,代码如下: Java 1 2 3 4 5 6 public static void install(Context context, String filePath) { Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndT

Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件

Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件. 1.为了防止拖动ListView时,在列表末尾重复数据显示.需要加入 HashMap<Integer,View> lmap = new HashMap<Integer,View>();其中Integer为列表位置,View为子项视图,加入数据前首先if (lmap.get(position)==null) ,满足条件时,加入lmap.put(position, convertView

imei-请问如何将Android手机的IMEI码在屏幕上显示出来?

问题描述 请问如何将Android手机的IMEI码在屏幕上显示出来? 已经找到了获取IMEI码的代码,但是获取的IMEI码如何显示在屏幕上呢?本人是菜鸟一枚,求大师讲解一下,不胜感激!! 解决方案 你是想把IMEI显示到当前界面的上面吧,WindowManager的addview方法试试,下面这个WindowManager的小例子可以参考下 http://ygc87.blog.163.com/blog/static/2396065201132724759709/ 解决方案二: 0 你是想把IME

21_Android中常见对话框,光传感器,通过重力感应器编写出指南针应用,帧动画,通过Jav代码的方式编写补间动画,通过XML的方式编写补间动画

 1 关于常见的对话框,主要有: 常见的对话框,单选对话框,多选对话框,进度条对话框(转圈类型的),带进度条的对话框. 案例结构: 完成如下结构的案例,将所有的案例都测试一下: 2 编写MainActivity,代码如下: package com.itheima.dialog;   import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import and