2012-07-05 74 views
0

在Android中,我知道如何覆盖两个图像并为它们设置动画。问题是如何在第一张图片的特定位置叠加第二张图片。指定图像覆盖的屏幕位置

作为示例,所述第一图像是与一个电源开关的一个设备的图像,第二图像是功率LED的动画时,将发光。

我想知道,这样它涵盖了电源开关,我如何能够指定的功率覆盖LED的位置。

回答

2

你可以做的一件事是将两个图像放在FrameLayout之内,宽度/高度都设置为wrap_content。你添加到FrameLayout的最后一个将是最高的。然后,您可以通过以下方式之一独立的两个图像的位置:

1)您可以设置两个项目top|leftlayout_gravity,然后设置layout_marginToplayout_marginLeft两幅图像相对于FrameLayout的左上角位置。

2)如果你想,说中心图像B图像A的顶部,你可以像一个设置为layout_gravity top|leftlayout_marginLeft 0,layout_marginTop 0,则图像B设置layout_gravitycenter。这种方法在各种设备上运行方面更加强大。您甚至可以使用边距将图像B相对于其居中位置偏移。

您应该明白这一点。您可以结合layout_gravity以及边距来根据需要定位图像。

一些注意事项:

1)这是不是要走的事情非常有效的方式。如果在更大的布局中只有两张图像,没什么大不了的。但是如果在布局中多次使用这种技术,则渲染性能会受到影响。如果是这种情况,则应考虑创建一个自定义视图。

2)您需要对FrameLayout中包含的项目明确设置layout_gravity。否则FrameLayout将忽略子视图上的layout_marginToplayout_marginLeft属性。

最后,你可以这样做同样的伎俩与RelativeLayout,使用它的属性有关的图像彼此的位置。像FrameLayout一样,添加到布局的最后一个视图显示在其他视图之上。