我有一个程序,我想在一个活动中添加两个视图,比如
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给我答案。 感谢
答案 0 :(得分:5)
setContentView()
将仅显示您已设置的视图。如果要显示多个视图,则可以在布局XML文件中添加视图,如LinearLayout
,RelativeLayout
等任何布局。然后,您可以使用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
(您可以根据需要创建任意数量的视图...)