为不同的屏幕显示android显示位图

时间:2012-06-20 19:10:22

标签: android bitmap

  • 我有一个ListView,每行都有一个ImageView。
  • 这些图像在单独的线程中下载,然后附加到UI线程中的ImageViews。
  • 我下载的图片是92 X 136像素。我使用BitmapFactory将这些图像缩小到50 X 100 px。
  • 我希望这些图像在不同的屏幕尺寸上看起来大小相同。我知道在密度较高的屏幕上,这些图像看起来会更小,而在密度较低的图像上,它们看起来会更大。
  • 通常我们会将这些图像放在mdpi,hdpi等文件夹中,但在这种情况下,图像是动态下载的,并以编程方式进行缩放。

    有人能指出我应该做什么的正确方向。我不需要任何代码..只是一些算法应该做...

2 个答案:

答案 0 :(得分:0)

也许在文件夹中的xml中定义该ImageView的大小以获得适当的密度并设置scalingType属性,如fitXY?

答案 1 :(得分:0)

一种方法是在DP中按比例缩放:

int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, <HEIGHT>, getResources().getDisplayMetrics());

另一种方法是在dp中对imageView上的尺寸进行硬编码,或者在获取屏幕指标并计算要填充的宽度/高度的某个百分比之后以编程方式指定其高度宽度(尽管我认为在布局中仅使用固定的dp)将是足够的,如果需要,您可以使用值/维度来标记视图的大小)。并将像fitXYcenterCrop这样的scaleType指定给imageView以填充整个内容区域。