0

我有很多自定义视图。我想在布局上显示一个特定的自定义视图。我正在使用视图并尝试使用自定义视图对其进行初始化。它没有任何帮助吗?

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>
4

2 回答 2

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设置为

setContentView(R.layout.activity_animation);

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

CustomView customView = new CustomeView(this, null);
setContentView(customView);
于 2013-10-26T11:25:39.760 回答
0

很遗憾。你的方法是错误的。您正在从 xml 扩充视图,然后再次分配一个新的以编程方式创建的CustomView. 如果您的自定义视图是CustomView,则无需以编程方式创建新的CustomView.

你的最终代码应该是,

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

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

  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
于 2013-10-26T11:28:13.943 回答