gpt4 book ai didi

java - 使用自定义 View 设置布局

转载 作者:行者123 更新时间:2023-12-02 07:31:12 24 4
gpt4 key购买 nike

我有一个自定义 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com