将FrameLayout设置为xml布局android的背景

时间:2011-03-26 01:01:29

标签: android android-layout

我知道这可能很简单,但我在android中有一个xml文件,其中包含许多按钮以及一个FrameLayout,它可以显示手机上相机的预览。我希望这个FrameLayout在屏幕的背景和所有其他按钮等显示在它的顶部/上方。香港专业教育学院尝试使用“引力”并将FrameLayout设置为linearLayout的背景,它全部内置,但没有任何作用。不知道我怎么能做到这一点。

编辑: 这是我的代码。我尝试将Framelayout放在顶部的预览和按钮上的按钮,但是在测试它时效果不好所以现在我想将framelayout放在后台。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:id="@+id/layout">
  <!-- <1> -->
    <AbsoluteLayout android:id="@+id/absoluteLayout1" android:layout_height="fill_parent" android:layout_width="fill_parent">
        <Button android:layout_height="50dip" android:id="@+id/buttonClick" android:layout_width="wrap_content" android:text="Click" android:layout_x="104dip" android:layout_y="161dip" android:gravity="top"></Button>
        <TextView android:layout_height="wrap_content" android:id="@+id/textView2" android:layout_width="wrap_content" android:text="Hat" android:layout_x="-4dip" android:layout_y="258dip" android:gravity="top"></TextView>
        <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/hatbox" android:layout_x="-10dip" android:layout_y="202dip" android:gravity="top"></CheckBox>
        <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/shirtbox" android:layout_x="28dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
        <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/beltbox" android:layout_x="64dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
        <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/pantbox" android:layout_x="100dip" android:layout_y="202dip" android:gravity="top"></CheckBox>
        <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/shoebox" android:layout_x="140dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
        <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/accbox" android:layout_x="181dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
        <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/jacketbox" android:layout_x="220dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
        <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/dressbox" android:layout_x="257dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
        <TextView android:layout_height="wrap_content" android:id="@+id/TextView03" android:layout_width="wrap_content" android:text="Shirt" android:layout_x="33dip" android:layout_y="257dip" android:gravity="top"></TextView>
        <TextView android:layout_height="wrap_content" android:id="@+id/TextView01" android:layout_width="wrap_content" android:text="Belt" android:layout_x="72dip" android:layout_y="257dip" android:gravity="top"></TextView>
        <TextView android:layout_height="wrap_content" android:id="@+id/TextView05" android:layout_width="wrap_content" android:text="Pants" android:layout_x="101dip" android:layout_y="257dip" android:gravity="top"></TextView>
        <TextView android:layout_height="wrap_content" android:id="@+id/TextView02" android:layout_width="wrap_content" android:text="Shoes" android:layout_x="140dip" android:layout_y="257dip" android:gravity="top"></TextView>
        <TextView android:layout_height="wrap_content" android:id="@+id/TextView06" android:layout_width="wrap_content" android:text="Acc" android:layout_x="189dip" android:layout_y="258dip" android:gravity="top"></TextView>
        <TextView android:layout_height="wrap_content" android:id="@+id/TextView04" android:layout_width="wrap_content" android:text="Dress" android:layout_x="261dip" android:layout_y="261dip" android:gravity="top"></TextView>
        <TextView android:layout_height="wrap_content" android:id="@+id/TextView07" android:layout_width="wrap_content" android:text="Jacket" android:layout_x="220dip" android:layout_y="258dip" android:gravity="top"></TextView>
        <FrameLayout android:layout_height="200dip" android:visibility="invisible" android:id="@+id/preview" android:layout_width="300dip" android:layout_x="1dip" android:layout_y="2dip"></FrameLayout>
    </AbsoluteLayout>
  <!-- <2> -->
  <!-- <3> -->
</LinearLayout>

EDIT2: 所以它工作得很好,我只是要告诉你,但我突然间打破它....我正在调整按钮在屏幕上的位置,现在按钮不再可见。继承我的代码......任何想法?

version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:id="@+id/layout">
  <!-- <1> -->
    <AbsoluteLayout android:id="@+id/absoluteLayout2" android:layout_height="fill_parent" android:layout_width="fill_parent">
        <FrameLayout android:layout_height="fill_parent" android:visibility="visible" android:id="@+id/preview" android:layout_width="fill_parent" android:layout_x="0dip" android:layout_y="0dip">
            <AbsoluteLayout android:id="@+id/absoluteLayout1" android:background="@android:color/transparent" android:layout_width="wrap_content" android:layout_height="wrap_content">
                <Button android:layout_height="50dip" android:id="@+id/buttonClick" android:layout_y="161dip" android:layout_width="wrap_content" android:text="Click" android:gravity="top" android:layout_x="130dip"></Button>
                <TextView android:layout_height="wrap_content" android:layout_y="258dip" android:id="@+id/textView2" android:layout_width="wrap_content" android:gravity="top" android:text="Hat" android:layout_x="15dip"></TextView>
                <CheckBox android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="CheckBox" android:id="@+id/hatbox" android:gravity="top" android:layout_x="10dip" android:layout_y="200dip"></CheckBox>
                <CheckBox android:layout_height="wrap_content" android:layout_y="201dip" android:layout_width="wrap_content" android:text="CheckBox" android:id="@+id/shirtbox" android:gravity="top" android:layout_x="50dip"></CheckBox>
                <CheckBox android:layout_height="wrap_content" android:layout_y="201dip" android:layout_width="wrap_content" android:text="CheckBox" android:id="@+id/beltbox" android:gravity="top" android:layout_x="90dip"></CheckBox>
                <CheckBox android:layout_height="wrap_content" android:layout_y="202dip" android:layout_width="wrap_content" android:text="CheckBox" android:id="@+id/pantbox" android:gravity="top" android:layout_x="130dip"></CheckBox>
                <CheckBox android:layout_height="wrap_content" android:layout_y="201dip" android:layout_width="wrap_content" android:text="CheckBox" android:id="@+id/shoebox" android:gravity="top" android:layout_x="170dip"></CheckBox>
                <CheckBox android:layout_height="wrap_content" android:layout_y="201dip" android:layout_width="wrap_content" android:text="CheckBox" android:id="@+id/accbox" android:gravity="top" android:layout_x="210dip"></CheckBox>
                <CheckBox android:layout_height="wrap_content" android:layout_y="201dip" android:layout_width="wrap_content" android:text="CheckBox" android:id="@+id/jacketbox" android:gravity="top" android:layout_x="247dip"></CheckBox>
                <CheckBox android:layout_height="wrap_content" android:layout_y="201dip" android:layout_width="wrap_content" android:text="CheckBox" android:id="@+id/dressbox" android:gravity="top" android:layout_x="285dip"></CheckBox>
                <TextView android:layout_height="wrap_content" android:layout_y="257dip" android:id="@+id/TextView03" android:layout_width="wrap_content" android:gravity="top" android:text="Shirt" android:layout_x="55dip"></TextView>
                <TextView android:layout_height="wrap_content" android:layout_y="257dip" android:id="@+id/TextView01" android:layout_width="wrap_content" android:gravity="top" android:text="Belt" android:layout_x="95dip"></TextView>
                <TextView android:layout_height="wrap_content" android:layout_y="257dip" android:id="@+id/TextView05" android:layout_width="wrap_content" android:gravity="top" android:text="Pants" android:layout_x="130dip"></TextView>
                <TextView android:layout_height="wrap_content" android:layout_y="257dip" android:id="@+id/TextView02" android:layout_width="wrap_content" android:gravity="top" android:text="Shoes" android:layout_x="170dip"></TextView>
                <TextView android:layout_height="wrap_content" android:layout_y="258dip" android:id="@+id/TextView06" android:layout_width="wrap_content" android:gravity="top" android:text="Acc" android:layout_x="220dip"></TextView>
                <TextView android:layout_height="wrap_content" android:layout_y="261dip" android:id="@+id/TextView04" android:layout_width="wrap_content" android:gravity="top" android:text="Dress" android:layout_x="285dip"></TextView>
                <TextView android:layout_height="wrap_content" android:layout_y="258dip" android:id="@+id/TextView07" android:layout_width="wrap_content" android:gravity="top" android:text="Jacket" android:layout_x="247dip"></TextView>
            </AbsoluteLayout>
        </FrameLayout>
    </AbsoluteLayout>
  <!-- <2> -->
  <!-- <3> -->
</LinearLayout>

1 个答案:

答案 0 :(得分:2)

我认为您想要做的是在背景中进行相机预览,并在顶部放置所有按钮等。我假设这是某种AR应用程序。

要实现这一点,请进行预览并将其作为背景放入,现在只需将另一个布局设置在此布局的顶部即可。使其背景透明,并将所有项目放在上面。

由于你说你的相机做得很好,我将描述第二种布局。

使用

将此视图的背景设置为透明
android:background="@android:color/transparent"

所以,现在你可以看到相机了。大!只需将您的按钮等正常添加到此视图中,您就可以创建您正在寻找的效果。

编辑为了澄清,第二个布局(带按钮的布局)将是相机预览的一个孩子。

编辑:2 目前还没有安装我的Android SDK,但不管怎么说我都会抓住这个......

我所做的就是让你的相机预览版画中的绝对透明。试试那段代码。

   <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent" android:id="@+id/layout">
<!-- <1> -->
<AbsoluteLayout android:id="@+id/absoluteLayout1" android:background="@android:color/transparent" android:layout_height="fill_parent" android:layout_width="fill_parent">
    <Button android:layout_height="50dip" android:id="@+id/buttonClick" android:layout_width="wrap_content" android:text="Click" android:layout_x="104dip" android:layout_y="161dip" android:gravity="top"></Button>
    <TextView android:layout_height="wrap_content" android:id="@+id/textView2" android:layout_width="wrap_content" android:text="Hat" android:layout_x="-4dip" android:layout_y="258dip" android:gravity="top"></TextView>
    <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/hatbox" android:layout_x="-10dip" android:layout_y="202dip" android:gravity="top"></CheckBox>
    <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/shirtbox" android:layout_x="28dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
    <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/beltbox" android:layout_x="64dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
    <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/pantbox" android:layout_x="100dip" android:layout_y="202dip" android:gravity="top"></CheckBox>
    <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/shoebox" android:layout_x="140dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
    <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/accbox" android:layout_x="181dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
    <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/jacketbox" android:layout_x="220dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
    <CheckBox android:layout_height="wrap_content" android:text="CheckBox" android:layout_width="wrap_content" android:id="@+id/dressbox" android:layout_x="257dip" android:layout_y="201dip" android:gravity="top"></CheckBox>
    <TextView android:layout_height="wrap_content" android:id="@+id/TextView03" android:layout_width="wrap_content" android:text="Shirt" android:layout_x="33dip" android:layout_y="257dip" android:gravity="top"></TextView>
    <TextView android:layout_height="wrap_content" android:id="@+id/TextView01" android:layout_width="wrap_content" android:text="Belt" android:layout_x="72dip" android:layout_y="257dip" android:gravity="top"></TextView>
    <TextView android:layout_height="wrap_content" android:id="@+id/TextView05" android:layout_width="wrap_content" android:text="Pants" android:layout_x="101dip" android:layout_y="257dip" android:gravity="top"></TextView>
    <TextView android:layout_height="wrap_content" android:id="@+id/TextView02" android:layout_width="wrap_content" android:text="Shoes" android:layout_x="140dip" android:layout_y="257dip" android:gravity="top"></TextView>
    <TextView android:layout_height="wrap_content" android:id="@+id/TextView06" android:layout_width="wrap_content" android:text="Acc" android:layout_x="189dip" android:layout_y="258dip" android:gravity="top"></TextView>
    <TextView android:layout_height="wrap_content" android:id="@+id/TextView04" android:layout_width="wrap_content" android:text="Dress" android:layout_x="261dip" android:layout_y="261dip" android:gravity="top"></TextView>
    <TextView android:layout_height="wrap_content" android:id="@+id/TextView07" android:layout_width="wrap_content" android:text="Jacket" android:layout_x="220dip" android:layout_y="258dip" android:gravity="top"></TextView>
    <FrameLayout android:layout_height="200dip" android:visibility="invisible" android:id="@+id/preview" android:layout_width="300dip" android:layout_x="1dip" android:layout_y="2dip"></FrameLayout>
</AbsoluteLayout>
<!-- <2> -->
<!-- <3> -->
</LinearLayout>

<强> EDIT3

进一步澄清。我正在描述的应用程序在线性布局中具有相机预览。你把它的绝对放在它里面。将它的背景设置为透明,因此它的背景现在是相机预览。完成所有这些后,您将按钮等附加到绝对布局,创建我在下面的评论中链接的效果。