位图在不同设备中显示严重

时间:2014-10-10 13:58:20

标签: android bitmap

我有一个位图,完全显示在我的7''英寸平板电脑,但在其他设备上有所不同,这是一个屏幕问题,但我不明白如何解决。

我以这种方式通过URL检索此位图

URL url = new URL(...);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
overlay = BitmapFactory.decodeStream(input);
connection.disconnect();

在我这样做之后

bitmapMarker = BitmapFactory.decodeResource(context.getResources(), R.drawable.marker);
newMarker = bitmapMarker.copy(Bitmap.Config.ARGB_8888, true);
canvas = new Canvas(newMarker);
canvas.drawBitmap(overlay, 14, 8, null);****** -> THIS CANVAS IS NOT DISPLAYED WELL IN DIFFERENT DEVICES***********
marker = map.addMarker(new MarkerOptions().position(position).title(title).snippet(snippetText).icon(BitmapDescriptorFactory.fromBitmap(newMarker)));

提前感谢。

2 个答案:

答案 0 :(得分:1)

你能改变吗?

canvas = new Canvas(newMarker);
canvas.drawBitmap(overlay, 14, 8, null);****** -> THIS CANVAS IS NOT DISPLAYED WELL IN DIFFERENT DEVICES***********

canvas = new Canvas(newMarker);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
canvas.drawBitmap(overlay, 14, 8, paint);

并查看是否可以解决问题?我认为默认情况下,某些平台上的android会扩展为填充,但不会扩展到其他平台。

答案 1 :(得分:1)

您应该查看Android设备大小分辨率。每个设备都知道它使用的分辨率。通过使用可以根据当前设备的分辨率获取其中一个图像的方法,您可以获得适合当前设备的不同大小的图像。

getImage(getResources().getDisplayMetrics().densityDpi);

要了解有关支持不同屏幕的更多信息,this是一个很好的起点。为了缩放目的,至少要注意不同屏幕尺寸之间的比例(即mdpi是xxxhpdi大小的25%)。