在单个Layout :: Android中添加多个自定义视图

时间:2013-10-26 11:13:21

标签: android

我有很多自定义视图。我想在Layout上显示特定的自定义视图。我正在使用View并尝试使用自定义视图初始化它。它没有任何帮助吗?

View custom=(View)findViewById(R.id.animation_View);
    custom=new CustomeView(this, null);

    setContentView(R.layout.activity_animation);

Activity_XMl

 <View
    android:id="@+id/animation_View"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

</View>

2 个答案:

答案 0 :(得分:0)

使用CustomView

有两种方法

第一种方法是使用XML文件: -

例如,将activity_animation.xml文件更改为

<com.myapp.CustomView
    android:id="@+id/animation_View"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

</com.myapp.CustomView>

请注意,com.myapp应替换为您拥有CustomView的包名。

然后将此xml在ur活动中设置为

setContentView(R.layout.activity_animation);

第二种方式是动态地进行,不使用任何xml: -

CustomView customView = new CustomeView(this, null);
setContentView(customView);

答案 1 :(得分:0)

不幸的是。你的方法是错的。您正在从xml中提升视图,然后再次分配以编程方式创建的新CustomView。如果您的自定义视图为CustomView,则无需以编程方式创建新的CustomView

你的最终代码应该是,

View custom=(View)findViewById(R.id.animation_View);
setContentView(R.layout.activity_animation);

假设您已正确扩展View类并将其添加到activity_animation xml中。有关创建自定义视图组件的帮助,请查看 -

  1. http://www.vogella.com/articles/AndroidCustomViews/article.html
  2. http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-custom-views-2/
  3. http://developer.android.com/training/custom-views/index.html