【发布时间】:2016-04-14 06:44:48
【问题描述】:
如何实现最合理地将图像放置在 3:4、1:1 或 4:3 区域的布局(或视图)。图片顺序很重要;图像可能会被裁剪。例如:
2 张高大的图片:
5 张宽图:
...等等...
【问题讨论】:
标签: android layout imageview mosaic
如何实现最合理地将图像放置在 3:4、1:1 或 4:3 区域的布局(或视图)。图片顺序很重要;图像可能会被裁剪。例如:
2 张高大的图片:
5 张宽图:
...等等...
【问题讨论】:
标签: android layout imageview mosaic
我不能评论你的问题,说你的例子没有出现在你的问题中。但我想建议使用这个库AndroidMosaicLayout 以马赛克图案显示您的图像。
实际上这个库可以使用 90 种不同的图案,由 4 个基本形状组成(小正方形,大正方形是 4 个小正方形,垂直矩形和水平矩形,两个矩形都由 2 个小正方形组成)。
您必须使用描述该图案的数组来定义您需要的图案,这个大小为 8 的数组,因此每个图案构成它的基本网格由 8 个小方块组成。
例如,如果你想得到以下模式:
----------- ----------- ----------- -----------
| | | |
| | img 2 | img 3 |
| vert. | small | horiz. horiz. |
| | | |
| img 1 | --------- | --------- | --------- |
| | | |
| | img 4 | img 5 |
| vert. | horiz. horiz. | small |
| | | |
---------- ----------- ----------- -----------
您需要通过为塑造整个图案的主要 8 个正方形中的每个正方形设置角色来定义图案。所以对于这个形状,图案将是这样的:
BLOCK_PATTERN pattern[] = {
BLOCK_PATTERN.VERTICAL, BLOCK_PATTERN.SMALL, BLOCK_PATTERN.HORIZONTAL, BLOCK_PATTERN.HORIZONTAL,
BLOCK_PATTERN.VERTICAL, BLOCK_PATTERN.HORIZONTAL, BLOCK_PATTERN.HORIZONTAL, BLOCK_PATTERN.SMALL
};
【讨论】: