我正在尝试捕捉我的应用屏幕,而不仅仅是线性布局。
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或屏幕。
答案 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);
}
});
}