应用中的Android捕捉布局

时间:2013-04-15 15:53:33

标签: android xml canvas bitmap

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

atm我正在使用我认为应该可行的这个,但IDK并不是这样。它捕获手机的所有屏幕,而不仅仅是我希望它的线性布局

    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它应该捕获仅包含3imageviews和2个textview的linearlayout,但它会捕获所有xml或屏幕。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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); } }); }