android--布局组件截图

来源:互联网 发布:知柏地黄丸与难入睡 编辑:程序博客网 时间:2024/04/30 09:19

android应用中,我们可能需要对一些布局截图显示,比如:在editText中加入图片,或者加入一个录音布局,布局中有图标,有录音文件大小和录音名字。一般步骤:
1 获取自定义布局
2 初始化控件值
3 打开图像缓存
4 测量大小
5 视图布局再获取视图view对象

如:自定义布局文件:task_recoder_item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="40dp"    android:background="@drawable/task_bj_recoder"    android:layout_margin="3dp"    android:orientation="horizontal" >    <ImageView         android:layout_width="wrap_content"        android:layout_height="match_parent"        android:layout_marginLeft="8dp"        android:src="@drawable/task_icon_recoder"        />    <LinearLayout         android:layout_width="0dp"        android:layout_weight="1"        android:layout_height="match_parent"        android:orientation="vertical"        android:layout_margin="5dp"        >        <TextView             android:id="@+id/tv_recoder_filename"            android:layout_width="wrap_content"            android:layout_height="0dp"            android:layout_weight="1"            android:text="20141010.mp3"            android:textSize="12sp"            />        <TextView             android:id="@+id/tv_recoder_size"             android:layout_width="wrap_content"            android:layout_height="0dp"            android:layout_weight="1"            android:textSize="12sp"             android:text="13kb"            />    </LinearLayout></LinearLayout>

调用生成代码是:

View view = getLayoutInflater().inflate(R.layout.task_recoder_item, null);        TextView tv_filename = (TextView) view.findViewById(R.id.tv_recoder_filename);        TextView tv_size = (TextView) view.findViewById(R.id.tv_recoder_size);        tv_filename.setText(file.substring(file.lastIndexOf("/")+1));        tv_size.setText(FileUtils.getAutoFileOrFilesSize(file));        //打开图像缓存        view.setDrawingCacheEnabled(true);        //测量大小        view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));        //发送尺寸到view和子view        view.layout(0, 0, view.getMeasuredWidth(),view.getMeasuredHeight());        //获取可视组件的截图        Bitmap cacheBitmap = view.getDrawingCache();

效果就是组件的截图

自己做个笔记,也希望能帮助有需要的同学~~

0 0
原创粉丝点击