我正在动态创建一个Bitmap以添加到HorizontalScrollView,在密度无关的像素中指定其大小,如下所示:
int bmpWidth = dpToPixels(1300);
int bmpHeight = dpToPixels(chart.getLayoutParams().height);
Bitmap b = Bitmap.createBitmap(bmpWidth, bmpHeight, Bitmap.Config.ARGB_8888);
其中dpToPixels是一种仅将像素转换为dip的方法:
private int dpToPixels(int dp) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());
}
在高清屏幕上,即宽度为1080像素(在Nexus 5和LG G2上测试),dpToPixels
方法确定BMP的大小应为3900像素。但是,位图似乎在屏幕上的宽度约为1300像素。所以我猜Bitmap实际上是由系统重新调整的。我怎么能阻止这个?
另一方面,在Galaxy S2上,1300 dip的转换得到1950像素,并且得到的BMP似乎具有该宽度,就像它没有被重新缩放一样。所以我有点困惑......
感谢您的帮助!