作爲該圖像中看出: 的Android屏幕尺寸不一致
我有一個圓角矩形的1082 X 1796的大小,以及我用getWindowManager().getDefaultDisplay()
得到並且如看到的打印屏幕的像素值左下方的圓圈。但是,當我繪製此位圖時,會發生這種情況:
屏幕大小是否與getDefaultDisplay()方法不同?我該如何解決?
作爲該圖像中看出: 的Android屏幕尺寸不一致
我有一個圓角矩形的1082 X 1796的大小,以及我用getWindowManager().getDefaultDisplay()
得到並且如看到的打印屏幕的像素值左下方的圓圈。但是,當我繪製此位圖時,會發生這種情況:
屏幕大小是否與getDefaultDisplay()方法不同?我該如何解決?
我認爲你的形狀被系統視爲9patch。它使用第一行和最後一行/列來知道如何調整圖像大小以便一致地顯示。
這就是爲什麼寬度和高度存在2px差異的原因。我認爲你可以通過修改png和刪除第一行和最後一行/列來糾正它,或者用另一種方法繪製圖像。也許使用其他格式(jpg?bmp?)可以完成這項工作。我不確定。
你可以做到這一點與計算,以適應基於設備屏幕的寬度和高度,所有的屏幕設備:
DisplayMetrics dm = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = width * imageHeight/imageWidth;
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);