我发现很多人问及如何调整图像以适应设备屏幕的问题和答案,我想我自己 - 如果我可以使用
获得设备分辨率 Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
为什么我只能通过屏幕的1/5来缩放/调整图像大小? 多数民众赞成我可以做的方式可以说1/5的空间2/5的图像和另外1/5的文本,它应该适合所有的设备,我错过了什么?
为什么我会得到一个被弃用的"这段代码中的警告?
对不起我的英文,并提前感谢您的帮助
答案 0 :(得分:1)
在Android中,您的应用可能无法覆盖整个屏幕。即使您禁用了标题栏/状态栏等,您仍然可以使用特定于设备的Chrome(例如Android 3.0中的屏幕按钮)。
答案 1 :(得分:0)
为什么我不能只通过屏幕的1/5来缩放/调整图像大小?
你可以,如果你想让你的图像占用一些相对数量的屏幕尺寸,那么这个和使用带有权重的LinearLayout
(正如其他人所指出的)可能是你唯一的选择。请注意,您可能不希望在主UI线程上执行任何图像缩放,并且您应该尝试尽可能高效地执行此操作。看看the guidelines是否有一些好的做法。
另请注意,屏幕宽度(尤其是屏幕高度)不一定是图像和/或UI可用的空间量。可能存在执行边距/填充或其他组件;例如ActionBar。
为什么我会在此代码中收到“已弃用”的警告?
请参阅Display.getHeight()
或Display.getWidth()
的文档:
此方法已在API级别13中弃用。请改用
getSize(Point)
。
Google基本上告诉开发人员,它可能会停止在未来的平台版本中支持上述方法。因此,您应尽可能远离它们。大多数开发人员最终会编写自己的帮助器方法,在旧平台上使用已弃用的方法(在本例中为API级别13),在新平台上使用getSize(...)
。您可以使用Build.VERSION_CODES
来实现此目的。