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

标签 java android android-layout android-view

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

相关文章:

android - 如何在 flutter Google map 中添加自定义尺寸?

android - 我需要将笔触颜色更改为用户定义的颜色。与国家无关

android - 是否可以使用搜索参数在 Android 上启动 YouTube 应用程序?

java - 为什么 MALLET LDA 需要保持序列?

java - GridView内存不足位图

java - 使用特定分析器在 Hibernate 中执行搜索

java - 以编程方式从 Appcompat 22.2.0 更改 float 操作按钮的颜色

android - 根据数据内容创建 RecyclerView 项目布局

android - 具有多行的 EditText android API 级别 8

java - 提交响应后是否可以从 servlet 过滤器转发或重定向?