我有一个 ListView,每一行都有一个 ImageView。
这些图像在单独的线程中下载,然后附加到 UI 线程中的 ImageViews。
我正在下载的图像是 92 X 136 像素。我使用 BitmapFactory 将这些图像缩小到 50 X 100 像素。
我希望这些图像在不同的屏幕尺寸上看起来大小相同。我知道在密度较高的屏幕上,这些图像看起来更小,而在密度较低的屏幕上,它们看起来更大。
通常我们会将这些图像放在 mdpi、hdpi 等文件夹中,但在这种情况下,图像是动态下载并以编程方式缩放的。
有人可以指出我应该做什么的正确方向。我不需要任何代码......只是一些算法应该做......
问问题
81 次
2 回答
0
一种方法是像这样在 DP 中扩展:
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, <HEIGHT>, getResources().getDisplayMetrics());
另一种方法是在 dp 中硬编码 imageView 上的尺寸或在获取屏幕指标并计算要填充的宽度/高度的某个百分比后以编程方式分配其高度宽度(尽管我认为仅在布局中使用固定 dp 就足够了,如果需要,您可以使用值/尺寸来标记视图的大小)。并为 imageView 分配一个类似fitXY
或的 scaleTypecenterCrop
以填充整个内容区域。
于 2012-06-20T19:33:36.383 回答
0
也许在文件夹中的 xml 中定义 ImageView 的大小以获得适当的密度,并在那里设置像 fitXY 这样的 scalingType 属性?
于 2012-06-20T19:25:45.733 回答