当前位置: 首页 > 知识库问答 >
问题:

如何在android中以编程方式获得屏幕大小

丌官丰羽
2023-03-14

Android将屏幕尺寸定义为普通的大屏幕等。

它会自动选择适当文件夹中的静态资源。我需要这个数据关于当前设备在我的java代码。DisplayMetrics仅提供有关当前设备密度的信息。没有关于屏幕大小可用。

我确实在grep代码中找到了屏幕大小枚举,但是这对我来说似乎不适用于4.0 SDK。有办法得到这些信息吗?

共有3个答案

尹承业
2023-03-14

确定屏幕大小:

int screenSize = getResources().getConfiguration().screenLayout &Configuration.SCREENLAYOUT_SIZE_MASK;
  switch(screenSize) {
      case Configuration.SCREENLAYOUT_SIZE_LARGE:
        Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();
         break;
       case Configuration.SCREENLAYOUT_SIZE_NORMAL:
          Toast.makeText(this, "Normal screen",Toast.LENGTH_LONG).show();
           break;
       case Configuration.SCREENLAYOUT_SIZE_SMALL:
           Toast.makeText(this, "Small screen",Toast.LENGTH_LONG).show();
           break;
       default:
           Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();

 }

确定密度:

int density= getResources().getDisplayMetrics().densityDpi;
   switch(density)
  {
  case DisplayMetrics.DENSITY_LOW:
     Toast.makeText(context, "LDPI", Toast.LENGTH_SHORT).show();
      break;
  case DisplayMetrics.DENSITY_MEDIUM:
       Toast.makeText(context, "MDPI", Toast.LENGTH_SHORT).show();
      break;
  case DisplayMetrics.DENSITY_HIGH:
      Toast.makeText(context, "HDPI", Toast.LENGTH_SHORT).show();
      break;
  case DisplayMetrics.DENSITY_XHIGH:
       Toast.makeText(context, "XHDPI", Toast.LENGTH_SHORT).show();
      break;
  }

参考:http://devl-android.blogspot.in/2013/10/wifi-connectivity-and-hotspot-in-android.html

庞书
2023-03-14
private static String getScreenResolution(Context context)
{
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;

    return "{" + width + "," + height + "}";
}
公羊光明
2023-03-14

将此代码复制并粘贴到您的活动中,当执行此代码时,它将Toast设备的屏幕大小类别。

int screenSize = getResources().getConfiguration().screenLayout &
        Configuration.SCREENLAYOUT_SIZE_MASK;

String toastMsg;
switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
        toastMsg = "Large screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        toastMsg = "Normal screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        toastMsg = "Small screen";
        break;
    default:
        toastMsg = "Screen size is neither large, normal or small";
}
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
 类似资料:
  • 我知道这个问题已经被问了很多次,有很多问题、答案和讨论。但我不知道该做什么,不该做什么。 我已经参考了下面的链接,以获得解决方案,但运气不好。 https://stack overflow . com/questions/23438767/how-to-record-video-on-kit kat-4-4 < br > https://stack overflow . com/questions

  • 本文向大家介绍如何在iOS中以编程方式更改屏幕亮度?,包括了如何在iOS中以编程方式更改屏幕亮度?的使用技巧和注意事项,需要的朋友参考一下 要更改屏幕的亮度,我们必须使用屏幕的亮度属性。仅在主屏幕上支持此属性。此属性的值应为0.0到1.0之间的一个数字(含)。 应用程序所做的亮度更改将一直有效,直到锁定设备为止,无论应用程序是否关闭。下次打开显示器时,将恢复系统亮度(用户可以在“设置”或“控制中心

  • 问题内容: 我正在与Android的糟糕布局系统作斗争。我正在尝试用一张桌子填满屏幕(很简单吗?),但是很难做到。 我得到它可以以某种方式在XML中工作: 但是我无法使其在Java中工作。我已经尝试了LayoutParams的一百万种组合,但是没有任何效果。这是我得到的最佳结果,它只能填充屏幕的宽度,而不是高度: 显然,Android文档没有帮助。有人有主意吗? 问题答案: 终于弄清楚了如何做到这

  • 我正在开发一个应用程序,我必须通过编程来锁定和解锁屏幕。好心帮忙!我不知道如何开发这种类型的功能,支持每个版本的Android操作系统。

  • 问题内容: 有谁知道你将如何获得屏幕宽度的Java?我读了一些关于工具箱方法的内容,但是我不确定那是什么。 谢谢,安德鲁 问题答案:

  • 在Android/Java中,是否有任何代码示例以编程方式捕获具有每秒良好帧的计算机的屏幕截图并创建视频? 我想要一个教程或完整的源代码来做到这一点。我希望该程序可以使用设备,而无需“植根”设备。 播放商店中有一个名为”的应用程序可以执行此操作。但是您需要ROOT设备才能使其正常工作,因此我知道这是可以做到的。 在无root设备上捕获Android屏幕截图并以编程方式创建视频的最佳方法是什么?