Android 如何在自定义视图中添加视图?

Android 如何在自定义视图中添加视图?,android,custom-view,android-custom-view,Android,Custom View,Android Custom View,我有一个这样的班,大约有10个 public class DataItemPlainView extends View{ public DataItemPlainView(Context context) { super(context); // TODO Auto-generated constructor stub }} 现在我需要将TextView、ImageView等放在这个视图中。当我从某处调用它时,我想获取我的customView。

我有一个这样的班,大约有10个

public class DataItemPlainView extends View{

    public DataItemPlainView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }}
现在我需要将TextView、ImageView等放在这个视图中。当我从某处调用它时,我想获取我的customView。将视图设置为自定义布局也是一种情况


谢谢

您的自定义视图需要扩展
视图组
或扩展
视图组
的其他类之一。例如,如果这些布局符合自定义视图的需要,则可以从
RelativeLayout
LinearLayout
进行扩展


请记住,即使是布局类也只是另一个视图。他们恰好有方法将其他视图添加为子视图,并有代码递归地测量和绘制其子视图。

我会尝试扩展某种布局。请记住(在大多数情况下)它们也被视为视图。有关更多信息/决定选择哪个布局,请尝试查看此处:


为了实现绝对定位而弄乱边距是错误的。如果你需要利润,那就不会扩大规模

从Android中窃取代码,对其进行修改,然后使用“未弃用”的绝对布局

AbsoluteLayout被弃用是因为他们不想支持它,而不是因为它不起作用

去他妈的,他们的布局不符合我们的需要,那么他们推荐什么呢?自定义视图

因此,它是(重构的,没有样式(puke)支持):

/*
*版权所有(C)2006安卓开源项目
*
*根据Apache许可证2.0版(以下简称“许可证”)获得许可;
*除非遵守许可证,否则不得使用此文件。
*您可以通过以下方式获得许可证副本:
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*除非适用法律要求或书面同意,软件
*根据许可证进行的分发是按“原样”进行分发的,
*无任何明示或暗示的保证或条件。
*请参阅许可证以了解管理权限和权限的特定语言
*许可证下的限制。
*/
包com.example;
导入android.content.Context;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.RemoteView.RemoteView;
/**
*一种布局,用于指定其位置的精确位置(x/y坐标)
*孩子们。绝对布局比传统布局更不灵活,更难维护
*没有绝对定位的其他布局类型。
*
*/
@远程视图
公共类DCAbsoluteLayout扩展了视图组{
int mPaddingLeft、mPaddingRight、mPaddingTop、mPaddingBottom;
公共DCAbsoluteLayout(上下文){
超级(上下文);
}
@凌驾
测量时的保护空隙(内部宽度测量等级、内部高度测量等级){
int count=getChildCount();
int maxHeight=0;
int maxWidth=0;
//了解每个人都想成为多大的人
测量儿童(宽度测量,高度测量);
//查找最右边和最下面的子级
for(int i=0;i