我可以将 XML-layout 变成 drawable 吗?

Can I turn an XML-layout into a drawable?

所以我想将 xml 布局作为视图的背景,但它必须是可绘制的。那么有什么办法可以把它变成drawable吗?

我也试过给它充气,但没有任何效果是我想要的:(

提前致谢。

基本上就像@CommonsWare说的那样。
1.获取activity
的LayoutInflator 2. 像 inflater.inflate(R.layout.sample,null,false)
一样膨胀布局 3. 创建一个canvas,将所有绘图保存到定义的位图中,如下所示

Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
  1. 像这样将创建的视图绘制到canvas中

    View v = inflater.inflate(R.layout.sample,null,false); // inflate view here
    v.layout(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
    v.draw(c);
    
  2. 使用位图,canvas确实绘制了

  3. 考虑在activity的重绘方面将位图保存在本地,参见以下解释:

根据您希望通过 canvas 创建此背景的动态程度和频率,您还应该考虑将创建的位图保存在某处(临时),因为每次布局更改(例如复选框选择)时,整个 canvas 必须重新绘制,膨胀过程也需要进行第二次,这可能导致 UI 中的运行时滞后。 所以只需将此位图保存在某处并重新加载它,这就是我在类似情况下所做的。