次のコードを使用して、エミュレーター (API 7) で画面サイズを取得しようとしています。
float scaledDensity = this.getResources().getDisplayMetrics().scaledDensity;
今私は使用しようとしますscaledDensity
このコードで:
int width = (width / ((int) scaledDensity)) / 7;
そして、私はこの例外を受け取ります
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tomer.workoutlog2/com.example.workoutlog.SimpleCalendarViewActivity}: java.lang.ArithmeticException: divide by zero
完全なコード:
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE))
.getDefaultDisplay();
int width = 0;
if (android.os.Build.VERSION.SDK_INT >= 13) {
Point size = new Point();
display.getSize(size);
width = size.x;
} else
width = display.getWidth();
float scaledDensity = this.getResources().getDisplayMetrics().scaledDensity;
width = (width / ((int) scaledDensity)) / 7;
私の実際のデバイスでは、このエラーは発生しません。たぶん、エミュレータの問題でしょうか?