0

我正在尝试捕获我的应用程序屏幕,而不仅仅是线性布局。

atm 我正在使用它,我认为它应该可以工作,但 IDK y 它不是。它不仅捕获了我想要的线性布局,还捕获了手机的所有屏幕

    final LinearLayout ll = (LinearLayout) findViewById(R.id.Linear);
            View v1 = ll.getRootView();
            v1.setDrawingCacheEnabled(true);
            Bitmap bm = v1.getDrawingCache();       

我的xml的一部分:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:id="@+id/Linear" >

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent" >

                 <ImageView
                     android:layout_width="60dp"
                     android:layout_height="60dp" />

    </RelativeLayout>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="0"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="10dp" />

<ImageView
    android:layout_width="15dp"
    android:layout_height="18dp"
    android:layout_marginRight="10dp"
    android:src="@drawable/ll" />

<ImageView
    android:layout_width="15dp"
    android:layout_height="20dp"
    android:src="@drawable/lle" />

</LinearLayout>

atm 它应该捕获仅包含 3 个图像视图和 2 个文本视图的线性布局,但它会捕获所有 xml 或屏幕。

4

2 回答 2

1

您的问题是您要求根视图,即“所有 xml”。相反,您应该只使用您的LinearLayout

        final LinearLayout ll = (LinearLayout) findViewById(R.id.Linear);
        ll.setDrawingCacheEnabled(true);
        Bitmap bm = ll.getDrawingCache();  
于 2013-04-15T16:09:01.710 回答
0

通过使用它,我们可以捕获布局并保存到 sd 卡。 ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { l1.setDrawingCacheEnabled(true); img_bitmap = Bitmap.createBitmap(l1.getDrawingCache()); l1.setDrawingCacheEnabled(false); } }); }

于 2015-08-07T11:42:39.340 回答