在Android中,我知道如何覆盖两个图像并为它们设置动画。问题是如何在第一张图片的特定位置叠加第二张图片。指定图像覆盖的屏幕位置
作为示例,所述第一图像是与一个电源开关的一个设备的图像,第二图像是功率LED的动画时,将发光。
我想知道,这样它涵盖了电源开关,我如何能够指定的功率覆盖LED的位置。
在Android中,我知道如何覆盖两个图像并为它们设置动画。问题是如何在第一张图片的特定位置叠加第二张图片。指定图像覆盖的屏幕位置
作为示例,所述第一图像是与一个电源开关的一个设备的图像,第二图像是功率LED的动画时,将发光。
我想知道,这样它涵盖了电源开关,我如何能够指定的功率覆盖LED的位置。
你可以做的一件事是将两个图像放在FrameLayout
之内,宽度/高度都设置为wrap_content
。你添加到FrameLayout
的最后一个将是最高的。然后,您可以通过以下方式之一独立的两个图像的位置:
1)您可以设置两个项目top|left
的layout_gravity
,然后设置layout_marginTop
和layout_marginLeft
两幅图像相对于FrameLayout
的左上角位置。
2)如果你想,说中心图像B图像A的顶部,你可以像一个设置为layout_gravity top|left
,layout_marginLeft
0,layout_marginTop
0,则图像B设置layout_gravity
到center
。这种方法在各种设备上运行方面更加强大。您甚至可以使用边距将图像B相对于其居中位置偏移。
您应该明白这一点。您可以结合layout_gravity
以及边距来根据需要定位图像。
一些注意事项:
1)这是不是要走的事情非常有效的方式。如果在更大的布局中只有两张图像,没什么大不了的。但是如果在布局中多次使用这种技术,则渲染性能会受到影响。如果是这种情况,则应考虑创建一个自定义视图。
2)您需要对FrameLayout
中包含的项目明确设置layout_gravity
。否则FrameLayout
将忽略子视图上的layout_marginTop
和layout_marginLeft
属性。
最后,你可以这样做同样的伎俩与RelativeLayout
,使用它的属性有关的图像彼此的位置。像FrameLayout
一样,添加到布局的最后一个视图显示在其他视图之上。