Memor.の 2009-06-19 08:25 采纳率: 100%
浏览 292
已采纳

在像素中获取屏幕尺寸

I created some custom elements, and I want to programmatically place them to the upper right corner (n pixels from the top edge and m pixels from the right edge). Therefore I need to get the screen width and screen height and then set position:

int px = screenWidth - m;
int py = screenHeight - n;

How do I get screenWidth and screenHeight in the main Activity?

转载于:https://stackoverflow.com/questions/1016896/get-screen-dimensions-in-pixels

  • 写回答

2条回答 默认 最新

  • ?yb? 2009-06-19 08:41
    关注

    If you want the display dimensions in pixels you can use getSize:

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;
    

    If you're not in an Activity you can get the default Display via WINDOW_SERVICE:

    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    

    Before getSize was introduced (in API level 13), you could use the getWidth and getHeight methods that are now deprecated:

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

    For the use case you're describing however, a margin/padding in the layout seems more appropriate.

    Another way is: DisplayMetrics

    A structure describing general information about a display, such as its size, density, and font scaling. To access the DisplayMetrics members, initialize an object like this:

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    

    We can use widthPixels to get information for:

    "The absolute width of the display in pixels."

    Example:

    Log.d("ApplicationTagName", "Display width in px is " + metrics.widthPixels);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制