2010-08-17 93 views
1

我想构建自己的自定义视图,应该看起来像Crysis-GUI。自定义视图扩展视图类但仍然基于XML布局

起初,我设计了一个基于XML的布局,并通过setContentView(int resid)-Method使其可见。工作得很好。

但现在我不想更进一步,并在我的布局绘制。所以我创建了一个新类,让它扩展View并覆盖onDraw()方法。到现在为止还挺好。按预期工作

public class RifleView extends View { 

public RifleView(Context context) { 
    super(context); 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    Paint p = new Paint(); 
    p.setARGB(255, 255, 0, 0); 
    canvas.drawText("Hello World", 20, 20, p); 
} 

}

但我怎么能继续使用我的XML布局?我不能再做setContentView,那么如何实现相同的效果呢?

回答

2

为什么你不能使用setContentView?只是做一个这样的XML标签:<com.mycompany.mypackage.myComponent ... xml attributes an tags </com.mycompany.mypackage.myComponent>

+0

但我不想在我的RifleView中使用setContentView有我的基于XML的布局。然后,我不想通过onDraw()来绘制它 - 方法 – Alien 2010-08-17 15:14:04

+0

你不是说你的rifleView有孩子吗?这是一个视图...如果你想要它有孩子,你必须扩展ViewGroup – fedj 2010-08-17 15:17:00

+0

这是makse的意义,但为什么我的onDraw() - 方法不被调用? – Alien 2010-08-17 15:29:38