FrameLayout的目的是什么?我们应该在哪种情况下使用它?

时间:2012-05-21 06:28:02

标签: android android-framelayout android-relativelayout android-viewgroup

FrameLayout在Android中的用途是什么?是否有针对其设计的特定方案?

在我的Android应用程序中,我有一个场景,我必须显示两个ImageView,一个在另一个上。这是一个.png图像文件,在此图像上可以绘制9个补丁。

我应该将ViewGroup用于此目的:RelativeLayoutFrameLayout

我还想知道应该使用每个ViewGroup的不同场景。

2 个答案:

答案 0 :(得分:0)

我不记得我是怎么回答这个问题的,但这是我的回答,可以帮助任何人:

正如您所见here

  

FrameLayout旨在阻挡屏幕上的某个区域以显示单个项目。通常,FrameLayout应该用于保存单个子视图,因为很难以可扩展到不同屏幕大小的方式组织子视图而不会让孩子彼此重叠。

一般情况下,将2个视图一个放在另一个上是没有用的,因为你将会有过度绘制效果(屏幕的一个区域被gpu多次绘制,这实际上是无用的)。

如果你真的需要,那么你需要使用onDraw方法(你可以看到一个例子here)和Canvas API(看看here)和clipRect方法(你可以看到)示例here

关于FrameLayout或RelativeLayout,如果你想保持简单或你的活动已经有足够的嵌套布局,那么最好使用FrameLayout。在2017年,有约束布局也可以提供一些帮助。

答案 1 :(得分:-5)

是的,您可以在您的方案中使用FrameLayout