这是其中一种令人讨厌的情况,其中一切正常但我不知道为什么。根据 Android API 文档和本网站,我预计必须对我的布局参数(此处以其原始状态显示)进行像素密度转换:
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.width = 60; // the following three should be pixels, right??
lp.height = 80;
lp.setMargins(1, 5, 1, 5);
换句话说,我预计上述内容在不同的屏幕密度下效果不佳,因为它们是以像素为单位指定的。 “问题”是它在我试过的所有模拟器上都能正常工作,从低级 QVGA 到上。为了解原因,我使用 Hierarchy Viewer 检查我的应用程序,发现当我的应用程序获得焦点时, View 的宽度(来自 getWidth())始终为 320。回到主屏幕,比方说,现在 HV 报告屏幕宽度为 480。
知道发生了什么吗?
最佳答案
这些值确实以像素为单位指定。听起来您的应用正在以兼容模式运行?
关于android - 设置边距——期望像素,获得 dps?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769302/