Android开发中可能有对控件,布局进行截图并显示的功能
以下说一下实现的方式,也算是记个笔记,防止以后用的时候自己忘记
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/linear_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:background="@drawable/shap_sold_black_10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:textSize="15sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:textSize="15sp"/>
</LinearLayout>
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
实现代码,初始化控件的代码我就省掉了
//开启图像缓存
linear_item.setDrawingCacheEnabled(true);
//测量view的大小
linear_item.measure(
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED) );
//发送位置和尺寸到view及其所有的子view
linear_item.layout (0, 0, linear_item.getMeasuredWidth(), linear_item.getMeasuredHeight());
Bitmap bp = linear_item.getDrawingCache();
//获得可视组件的截图
iv.setImageBitmap(bp);
这样我们的ImageView上就显示了LinearLayout的截图