【问题标题】:Service Screen Size服务屏幕尺寸
【发布时间】:2018-08-10 19:31:06
【问题描述】:

我知道使用getWindowManager().getDefaultDisplay().getMetrics(metrics); 来获取activity 的屏幕尺寸,但是我该如何获取service 的屏幕尺寸?如果我需要更多解释,请告诉我。

【问题讨论】:

  • 你想从服务中获取屏幕尺寸吗?
  • 我想获取我设备的屏幕尺寸。我想在服务类中执行此操作。
  • 找到了我的答案。事后我意识到我的措辞有多糟糕,非常抱歉浪费你的时间呵呵。
  • 它是重复的。此帖可以删除。

标签: android service


【解决方案1】:

在您的服务中试试这个:

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

WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
DisplayMetrics displayMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;

【讨论】:

  • 谢谢。我觉得不尝试使用 getSystemService 真的很愚蠢。我查了一下,但找不到任何用处 xD 我没有编码背景。我只是研究。你会推荐我能读到的任何东西吗?
  • 我没有考虑到通知栏。我只得到通知栏下方所有内容的屏幕尺寸。你能帮我进一步吗?
  • 这可能会有所帮助:stackoverflow.com/questions/26674378/…
  • 链接中的解决方案应该可以工作。这是从我的答案setScreenSize: 1080--------1794 中使用代码从服务中获得的内容,以及在我的示例应用程序中使用上面链接setScreenSize: 1080--------1920 中的代码从服务中获得的内容
  • 如果上述解决方案对您有用,请接受答案。
【解决方案2】:

服务的屏幕尺寸是什么意思?

Service是app的后台进程,没有UI。 (因此没有屏幕尺寸)您可以通过 Android Documentation

了解有关服务的更多信息

或者,如果我说得对,您想从服务访问屏幕大小。

一个技巧将是在应用程序从第一个活动启动时优先存储屏幕大小。即使应用程序在后台,也可以在任何地方使用它。因为屏幕大小不会改变。

编辑

看到你的图片后,如果是对话框,你可以用下面的方法让你的对话框全屏。

Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen)

【讨论】:

  • 这是我的应用程序的图像。我正在使用服务类来允许我的浮动 ui 覆盖。 oi67.tinypic.com/2hhk3sk.jpg
  • 对不起,这不是我要找的,呵呵,但我可能只是措辞不正确。我确实找到了答案,但还是谢谢你!
  • 当时的问题是什么,您是如何解决的?
  • 从服务类内部,我想获取屏幕的大小。
  • 你可以使用An hack线解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多