画面サイズを取得するために、このコードを使用しています
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 をサポートしていることがわかっている画面解像度を取得する唯一の方法です。