Android:使用XML在彼此之上的两个视图

时间:2014-06-10 00:45:22

标签: android xml bitmap views android-linearlayout

我想在屏幕上显示两个视图。一个是随机定位的点位图。我可以用setContentView(...)来显示它。 我还有两个位图和一个textview,它们通过xml布局语言排列,然后使用setContentView(R.layout.activity_title);


DrawV.java !!!基本上我认为我有两个setContentViews(...)我想在同一时间显示。如果您想了解更多信息,请告诉我。


public class DrawV extends View {     变中...

public DrawV(Context context){     创建圈子(圆形物体)存储坐标随机选择......

@覆盖 protected void onDraw(Canvas canvas){     将这些圆圈作为BITMAPS绘制...屏幕现在随处可见多个点 }


GameActivity.java


公共类GameActivity扩展Activity {     私人DrawV drawView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    drawView = new DrawV(this);
     setContentView(R.layout.activity_title);    !!!SHOWS LAYOUT (HOPEFULLY TEXTVIEW, TWO BUTTONS, AND RANDOMLY POSITIONED DOTS (DOTS NEVER WORKS) WHICH IS OVERDONE BY DRAWVIEW...
     setContentView(drawView); !!!IF THIS STATEMENT IS SECOND IT RENDERS INTEAD OF THE PREVIOUS STATEMENT.  OTHERWISE activity_title shows.
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    DEFAULT CODE...
}

}

!!!最糟糕的人:activity_title.xml


activity_title.xml


!!!我不确定如何写这个。它目前没有工作。 我想在屏幕上显示两个视图。一个是随机定位的点位图。我可以用setContentView(...)来显示它。 我还有两个位图和一个textview,它们通过xml布局语言排列,然后使用setContentView(R.layout.controls ...);


DrawV.java !!!基本上我认为我有两个setContentViews(...)我想在同一时间显示。如果您想了解更多信息,请告诉我。


public class DrawV extends View {     变中...

public DrawV(Context context){     创建圈子(圆形物体)存储坐标随机选择......

@覆盖 protected void onDraw(Canvas canvas){     将这些圆圈作为BITMAPS绘制...屏幕现在随处可见多个点 }


GameActivity.java !!! STARTING .JAVA


公共类GameActivity扩展Activity {     私人DrawV drawView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    drawView = new DrawV(this);
     setContentView(R.layout.activity_title);    !!!SHOWS LAYOUT (HOPEFULLY TEXTVIEW, TWO BUTTONS, AND RANDOMLY POSITIONED DOTS (DOTS NEVER WORKS) WHICH IS OVERDONE BY DRAWVIEW...
     setContentView(drawView); !!!IF THIS STATEMENT IS SECOND IT RENDERS INTEAD OF THE PREVIOUS STATEMENT.  OTHERWISE activity_title shows.
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    DEFAULT CODE...
}

}

!!!最糟糕的人:activity_title.xml


activity_title.xml


!!!I AM NOT SURE HOW TO WRITE THIS. IT DOESN'T CURRENTLY WORK.
<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
        <LinearLayout
            android:orientation="vertical"
            android:gravity="center"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp" >
                <TextView
                android:textColor="#ff0000"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textSize="40sp"
                android:text="@string/timer"
                android:id="@+id/timer">
                </TextView>
                <LinearLayout
                android:orientation="horizontal"
                android:layout_gravity="center_horizontal"
                android:gravity="center"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
<Button
                    android:layout_marginLeft="20dp"
                    android:background="@drawable/stopbutton"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="1"
                    android:text="@string/stopText"
                    android:id="@+id/stopButton"
                    android:visibility="gone">
                    </Button>
                    <Button
                    android:layout_marginLeft="20dp"
                    android:background="@drawable/startbutton"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="1"
                    android:text="@string/startText"
                    android:id="@+id/startButton">
                    </Button>
                    <Button
                    android:layout_marginRight="20dp"
                    android:background="@drawable/resetbutton"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="1"                   
                    android:text="@string/resetText"
                    android:id="@+id/resetButton">
                    </Button>
                </LinearLayout>
            </LinearLayout>

            <LinearLayout  !!!MESSED UP CODE. DON'T KNOW HOW TO SHOW DOTS USING XML
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal">
                 <View class="com.category.tap.DrawV"
                android:id="@+id/dotpic"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />
            </LinearLayout>


 </RelativeLayout>  

如果有人需要更多信息,请与我们联系。

3 个答案:

答案 0 :(得分:6)

XML文件中,在Views内声明FrameLayout,应该在另一个之上,应该在最后声明。

要声明自定义创建的视图,请使用以下格式:

<com.mypackage.MyCustomView
    android:layout_width=......

答案 1 :(得分:0)

如果要堆叠两个布局,请先将它们添加到FrameLayout

答案 2 :(得分:0)

对于堆叠视图,可以使用relaivelayout或framelayout。这些布局支持z-index放置,因此视图可以相互重叠。您不能在同一活动中拥有两个setcontentview。要在屏幕上显示一个点,您也可以这样做:

<View android:layout_height="1dp"
        android:layout_width="1dp"
        android:background="@android:color/black"/>