Android:如何向一个活动添加两个视图

时间:2011-06-06 05:44:55

标签: android

我有一个程序,我想在一个活动中添加两个视图,比如

 public class AnimationActivity extends Activity {
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(new GraphicsViewForBitmap(this));
        setContentView(new GraphicsView(this));


    }
}

其中GraphicsViewForBitmap& GraphicsView是两个类扩展视图。 所以我想一次两个视图应该设置为一个活动。 可能吗? Plz给我答案。 感谢

4 个答案:

答案 0 :(得分:5)

setContentView()将仅显示您已设置的视图。如果要显示多个视图,则可以在布局XML文件中添加视图,如LinearLayoutRelativeLayout等任何布局。然后,您可以使用setContentView(R.layout.yourXML)

以下是如何在XML中执行此操作...

<?xml 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">

<com.yourpkg.GraphicsView
android:layout_width="fill_parent"
  android:layout_height="fill_parent"/>


<com.yourpkg.GraphicsViewForBitmap
android:layout_width="fill_parent"
  android:layout_height="fill_parent"/>

</LinearLayout>

答案 1 :(得分:1)

是的,但首先必须将它们放在ViewGroup中,例如LinearLayout,然后使用setContentView设置ViewGroup。因为使用现有代码,您不只是将第二个视图附加到第一个视图,而是设置另一个内容。

答案 2 :(得分:0)

将第二个视图添加到第一个视图。

LinearLayout childLayout = new LinearLayout(this);
childLayout.setOrientation(LinearLayout.HORIZONTAL);

childLayout.addView(graphicsView);    
parentLayout.add(childLayout);

答案 3 :(得分:0)

另一种方法是创建第二个布局XML,例如 main2.xml (第一个是 main.xml )。然后你可以通过例如一个交换到另一个。一个ActionBar按钮等,如下所示:

setContentView(R.layout.main2); // Pass from layout #1 to layout #2 
setContentView(R.layout.main);  // Pass from layout #2 back to layout #1

(您可以根据需要创建任意数量的视图...)