【问题标题】:Add custom view (tileview) to layout?将自定义视图(tileview)添加到布局?
【发布时间】:2015-12-21 15:39:52
【问题描述】:

我是一名 Android 初学者,我想知道如何将自定义视图添加到布局 activity_main.xml

在我的MainActivity 我有以下内容:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);         

    }

我想在我的activity_main 布局中添加一个Tileview

 TileView tileView = new TileView( this );
  tileView.setSize( 2000, 3000 );  // the original size of the untiled image
  tileView.addDetailLevel( 1f, "tile-%d-%d.png");
  setContentView( tileView );

它们两个单独工作都很好。虽然我无法创建多个setContentView,但我想知道如何将tileView 创建到activity_main 布局(或一个id)中。我用LayoutInflater 尝试了几件事,但还没有成功。

提前致谢。

对于tileview,请参阅:https://github.com/moagrius/TileView

【问题讨论】:

    标签: android android-layout layout setcontentview


    【解决方案1】:

    将框架提供的ViewGroup 子类之一(例如LinearLayout)添加到activity_main.xml 并为其分配一个ID。它将充当您的TileView 的容器。实例化 TileView 后,使用 findViewById 检索此容器并在其上调用 addView,提供您刚刚实例化的 TileView 和可选的 LayoutParams 作为参数。

    【讨论】:

      【解决方案2】:

      你试过了吗?

      setContentView(R.layout.activity_main);
      
      TileView tileView = new TileView( this );
      tileView.setSize( 2000, 3000 );  // the original size of the untiled image
      tileView.addDetailLevel( 1f, "tile-%d-%d.png");
      
      ((RelativeLayout)findViewById(R.id.rootView)).addView(tileView);
      

      如果您的activity_main 的根视图是RelativeLayoutandroid:id="@+id/rootView"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多