1. 程式人生 > >android--佈局元件截圖

android--佈局元件截圖

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();

效果就是元件的截圖

自己做個筆記,也希望能幫助有需要的同學~~