我想动态创建一个图像,并与其他图像组合。
从预加载的位图图像阵列中随机选择其他图像。 怎么做?
答案 0 :(得分:0)
使用Drawables数组来包装每个图像。在每个可绘制实例中,通过重写onDraw方法指定应如何将图像渲染到画布。
您可以使用LayerDrawable类来管理所有drawable(它还为您提供了一些非常方便的方法)。
我不知道最终的图像是什么样的,但听起来像一个图像的定位/尺寸可能会影响另一个图像的定位/尺寸。这意味着在为每个图像提供物理尺寸之前,您必须知道所有图像。
这就是我要做的事情:
1)创建扩展View的主类,它包含drawable数组(实际上是你的图像)并计算考虑所有图像的正确坐标。
2)给它一个接受你的drawables的构造函数
3)创建为您的位图扩展Drawable的类。给它2个字段,一个具有逻辑大小/坐标,另一个具有物理尺寸/坐标。逻辑上应该在构造中填写,因为它们只是读取位图的自然比例。物理的将在稍后填写。这些类的onDraw方法应该使用物理坐标中的值。
4)为主视图类提供一个考虑所有图像逻辑大小的丑陋数学方法。数学方法将使用这些以及屏幕的尺寸来确定每个图像的物理尺寸应该是什么。
5)用数学方法的resutls填充每个Drawable的物理属性。
6)使主视图类'onDraw通过从外部添加到布局或通过调用invalidate()(如果它已经在布局上)来进行。
希望这有帮助