想要获取设备宽高分辨率,最好放到Utils跑龙套里面。


基础知识:

  1. WindowManager

  • The interface that apps use to talk to the window manager.

  • Use Context.getSystemService(Context.WINDOW_SERVICE) to get one of these.

  • Each window manager instance is bound to a particular Display. To obtain a WindowManager for a different display, use createDisplayContext(Display) to obtain a Context for that display, then use Context.getSystemService(Context.WINDOW_SERVICE) to get the WindowManager.

  • The simplest way to show a window on another display is to create a Presentation.  The presentation will automatically obtain a WindowManager and Context for that display.

    整个Android的窗口机制是基于一个叫做 WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,直接忽略我们以前的Activity或者Dialog之类的东东。其实我们的Activity或者Diolog底层的实现也是通过WindowManager,这个 WindowManager是全局的,整个系统就是这个唯一的东东。它是显示View的最底层了。 (引自http://gundumw100.iteye.com/blog/830235)


方法:

abstract Display

getDefaultDisplay()

Returns the Display upon which this WindowManager instance will create new windows.

abstract void removeViewImmediate(View view)

Special variation of removeView(View) that immediately invokes the given view hierarchy's View.onDetachedFromWindow() methods before returning.

2.Display

Provides information about the size and density of a logical display.

The display area is described in two different ways.

  • The application display area specifies the part of the display that may contain an application window, excluding the system decorations.  The application display area may be smaller than the real display area because the system subtracts the space needed for decor elements such as the status bar.  Use the following methods to query the application display area: getSize(Point), getRectSize(Rect) and getMetrics(DisplayMetrics).

  • The real display area specifies the part of the display that contains content including the system decorations.  Even so, the real display area may be smaller than the physical size of the display if the window manager is emulating a smaller display using (adb shell am display-size).  Use the following methods to query the real display area: getRealSize(Point), getRealMetrics(DisplayMetrics).


A logical display does not necessarily represent a particular physical display device such as the built-in screen or an external monitor.  The contents of a logical display may be presented on one or more physical displays according to the devices that are currently attached and whether mirroring has been enabled.



下面给出代码:

import android.content.Context;import android.util.DisplayMetrics;import android.view.Display;import android.view.WindowManager;public class Utils {public static int getScreenWidth(Context context) {WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display display = manager.getDefaultDisplay();return display.getWidth();}public static int getScreenHeight(Context context) {WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display display = manager.getDefaultDisplay();return display.getHeight();}public static float getScreenDensity(Context context) {try {DisplayMetrics dm = new DisplayMetrics();WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);manager.getDefaultDisplay().getMetrics(dm);return dm.density;} catch (Exception ex) {}return 1.0f;}}










更多相关文章

  1. android 实现由下至上弹出并位于屏幕底部的提示框【转】
  2. android获取屏幕宽高的两种方法
  3. Android(安卓)Intent多种传值方式
  4. Android中dp和px之间进行转换
  5. Android获取屏幕分辨率
  6. Android(安卓)获得屏幕大小
  7. android图片拖动
  8. android 获取手机屏幕分辨率
  9. 【Android(安卓)Dev Guide - 02】 - Application Fundamentals

随机推荐

  1. Android(安卓)音频的播放之一
  2. Android评论留言页面
  3. Android 6.0 源代码编译实践
  4. Android中下拉列表框操作
  5. Android让一个apk作为Launcher启动
  6. Android 网络操作(上传下载等)
  7. android程序安全注意点
  8. Android 探究 LayoutInflater setFactory
  9. Android 线程池管理工具类
  10. Android回调事件传播-android学习之旅(四