我有一个自定义 View 类(用于绘图的 Canvas )。当我希望它占据整个屏幕时,我实例化该类并调用 setContentView,如下所示:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawingPanel = new DrawingPanel(this);
setContentView(drawingPanel);
}
但是,当我希望屏幕基于 xml 布局 (activity_make.xml) 并包含 2 个元素、一个按钮和一个用于绘图 Canvas 的占位符时,如何将我的自定义 View “粘贴”到 View 占位符中?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_make); // the layout which has a button and a placeholder view
drawingPanel = new DrawingPanel(this); // instantiating my canvas
View drawPanelPlaceholder = (View) findViewById(R.id.drawingview);
// how do i stick the drawingPanel into the drawPanelPlaceholder?
}
或者有更好的方法来解决这个问题吗?也欢迎与此相关的文档链接!
最佳答案
如果您的 DrawingPanel 类扩展了 View,您可以执行类似的操作,
在您的 xml 中声明此自定义组件及其包名称,
<com.myview.DrawingPanel android:id="@+id/drawingview"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
请注意,com.myview.DrawingPanel 只是我用来演示的一个名称。但请确保使用与 DrawingPanel.class 相同的包名称。
现在在你的 onCreate 中,
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_make);
drawingPanel = (DrawingPanel) findViewById(R.id.drawingview);
}
关于java - 使用自定义 View 设置布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12896022/