我正在使用此代码来获取屏幕尺寸
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some_layout);
//more stuff
setTextSize();
}
private void setTextSize() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
//more code
sometextview.setTextSize(TypedValue.COMPLEX_UNIT_PX, width/10); //example only
}
事实证明,在极少数情况下这不起作用。我正在设置一些文本大小,有时它根本不会调整文本大小。我认为只有当我有一段时间没有打开应用程序时才会发生这种情况,因此很难调试它。我唯一的想法是,这是在应用程序甚至知道之前询问屏幕尺寸(这是第一个活动)。我该如何解决这个问题?这是我知道的支持所有 API 的唯一获取屏幕分辨率的方法。