我是android的菜鸟。我关于18:9设备可用高度的问题。当我尝试在这些纵横比中获得可用的屏幕时,我的应用程序可以正常运行所有android设备,但是何时?在三星银河s8中编译它不起作用。我正在尝试获取可用的设备屏幕。我已经尝试过这些链接中的方法
https://android-developers.googleblog.com/2017/03/update-your-app-to-take-advantage-of.html
我动态地使用
DisplayMetrics metrics = this.getResources().getDisplayMetrics();
width = metrics.widthPixels;
height = metrics.heightPixels ;
我试过了
private int getSoftButtonsBarHeight() {
// getRealMetrics is only available with API 17 and +
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int usableHeight = metrics.heightPixels;
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int realHeight = metrics.heightPixels;
if (realHeight > usableHeight)
return realHeight - usableHeight;
else
return 0;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试设置参数MATCH_PARENT的高度时,它工作得很好。但是我需要找到可用的高度像素来按比例设计其他视图。
实际上,这些代码DisplayMetrics metrics = this.getResources().getDisplayMetrics();
height = metrics.heightPixels ;在我的Activity中有效,但是当我尝试在另一个窗口(从FramaLayout扩展并添加到Activity中)中使用它时,则无法正常工作。
这是我的代码块
public class StudentLoginActivity …Run Code Online (Sandbox Code Playgroud)