我看到这个问题被问了 100 次......但我尝试过的解决方案都没有工作......大多数都在 3 个设备中的 2 个上工作,而在第三个设备上,渲染是错误的 :(
我需要通过底部的“button_area”减小可见屏幕的大小(请参阅 ic_launcher 图标,例如 40dp 高度),以便为我的 WebView 提供大小。
(因为我想让它工作,我有一个可滚动的 WebView,当我触摸 button_area 时,我可以向上滚动整个屏幕以显示带有 ScrollView 的 button_area 下方的菜单)
我尝试了在网上找到的大约 10-15 种解决方案,有时它可以在模拟器和我的小三星 Galaxy ace 上运行,但在 Galaxy S3 上,高度又错误了。尝试了不同的方法和代码...
我的屏幕应如下所示:
实际上我的代码是这样的:
// STATUSBAR
int statusbar = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
statusbar = getResources().getDimensionPixelSize(resourceId);
}
Toast.makeText(getBaseContext(), "Statusbar= " + String.valueOf(statusbar), Toast.LENGTH_SHORT).show();
// GET SCREEN-HEIGHT
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
// HEIGHT IN PIXEL
float pix_h = metrics.heightPixels;
// HEIGHT IN DP
float dp_h = (metrics.heightPixels * 160) / metrics.ydpi;
Toast.makeText(getBaseContext(), "Height in DP= " + String.valueOf(dp_h), Toast.LENGTH_SHORT).show();
final float scale = getBaseContext().getResources().getDisplayMetrics().density;
int pixels = (int) ((dp_h) * scale + 0.5f);
Toast.makeText(getBaseContext(), "Height in Pixel= " + String.valueOf(pixels), Toast.LENGTH_SHORT).show();
int height = pixels - statusbar;
谢谢你的帮助!
最好的问候格哈德