getdrawingcache()在视图android上为null

时间:2012-10-26 11:29:25

标签: android screenshot

我想在我的布局上拍摄屏幕截图,下面的代码用于测量相对布局上的子计数,然后绘制布局。但我得到getdrawingcache()值为null。

                        View v=relative layout;

                int allitemsheight   = 0;
                List<Bitmap> bmps    = new ArrayList<Bitmap>();
                for (int i = 0; i < relative.getChildCount(); i++) {

                    View childView      = relative.getChildAt(i);
                    childView.setDrawingCacheEnabled(true);
                    childView.measure(MeasureSpec.makeMeasureSpec(v.getWidth(), MeasureSpec.EXACTLY), 
                            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));

                    childView.layout(0, 0, childView.getMeasuredWidth(), childView.getMeasuredHeight());
                    childView.setDrawingCacheEnabled(true);
                    childView.buildDrawingCache(true);

                    bmps.add(childView.getDrawingCache());
                    allitemsheight+=childView.getMeasuredHeight();
                }


                Bitmap b    = Bitmap.createBitmap(v.getMeasuredWidth(), allitemsheight, Bitmap.Config.ARGB_8888);
                Canvas bigcanvas    = new Canvas(b);


                Paint paint = new Paint();

                bigcanvas.drawColor(c.getResources().getColor(R.color.background));


                int iHeight = 0;

                for (int i = 0; i < bmps.size(); i++) {
                    Bitmap bmp = bmps.get(i);
                    bigcanvas.drawBitmap(bmp, 0, iHeight, paint);
                    iHeight+=bmp.getHeight();

                    if (null != bmp && !bmp.isRecycled()) {

                        bmp.recycle();
                    } else {


                    }
                    bmp=null;
                }

我的xml是,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/screen"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginBottom="5dp"
        android:background="@drawable/login_bg" >

        <ScrollView
            android:id="@+id/scrollView1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <RelativeLayout
                    android:id="@+id/above"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_alignParentTop="true"
                    >


                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentTop="true"
                        android:layout_marginLeft="80dp"
                        android:layout_marginTop="28dp"
                        android:layout_toLeftOf="@+id/editText1"
                        android:text="First Name"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText1"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentTop="true"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="15dp"
                        android:layout_toLeftOf="@+id/line1"

                        android:textColor="@color/app_text_color" >
                    </EditText>
                     <View
                        android:id="@+id/line1"
                        android:layout_width="2dp"
                        android:layout_height="match_parent" 
                        android:layout_centerInParent="true"
                        android:background="@android:color/transparent" />

                    <TextView
                        android:id="@+id/textView2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="28dp"
                        android:layout_toLeftOf="@+id/editText2"
                        android:layout_toRightOf="@+id/line1"
                        android:text="Middle Name"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText2"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentRight="true"

                        android:textColor="@color/app_text_color" >
                    </EditText>

                    <TextView
                        android:id="@+id/textView3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView1"
                        android:layout_marginLeft="80dp"
                        android:layout_marginTop="70dp"
                        android:layout_toLeftOf="@+id/editText3"
                        android:text="Last Name"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText3"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_below="@+id/editText1"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="42dp"
                        android:layout_toLeftOf="@+id/line1"
                       >
                    </EditText>

                    <TextView
                        android:id="@+id/textView4"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/textView2"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="65dp"
                        android:layout_toLeftOf="@+id/spinner1"
                        android:layout_toRightOf="@+id/line1"
                        android:text="Gender"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <Spinner
                        android:id="@+id/spinner1"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/editText2"
                        android:layout_marginRight="40dp"
                        android:layout_marginTop="42dp"
                        android:background="@drawable/spinner_bg"
                        android:ems="10"
                        android:paddingLeft="5dp"
                        android:paddingRight="5dp" />

                    <TextView
                        android:id="@+id/textView5"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView3"
                        android:layout_marginLeft="80dp"
                        android:layout_marginTop="65dp"
                        android:layout_toLeftOf="@+id/editText1"
                        android:text="Birth Date"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText4"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_below="@+id/editText3"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="44dp"
                        android:layout_toLeftOf="@+id/line1"
                       >
                    </EditText>

                    <TextView
                        android:id="@+id/textView6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/textView4"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="65dp"
                        android:layout_toRightOf="@+id/line1"
                        android:text="Age"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText5"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/spinner1"
                       >
                    </EditText>

                    <TextView
                        android:id="@+id/textView7"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView5"
                        android:layout_marginLeft="80dp"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="75dp"
                        android:layout_toLeftOf="@+id/editText1"
                        android:text="Address(St)"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText6"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_below="@+id/editText4"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="42dp"
                        android:layout_toLeftOf="@+id/line1"
                        >
                    </EditText>

                    <TextView
                        android:id="@+id/textView8"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/textView6"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="70dp"
                        android:layout_toRightOf="@+id/line1"
                        android:text="Suite/apt"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText7"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/editText5"
                        android:layout_marginRight="40dp"
                        android:layout_marginTop="42dp"
                        android:background="@drawable/txt1"
                        android:ems="10"
                        android:paddingLeft="5dp"
                        android:paddingRight="5dp"
                        android:singleLine="true"
                        android:textColor="@color/app_text_color" >
                    </EditText>

                    <TextView
                        android:id="@+id/textView9"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView7"
                        android:layout_marginLeft="80dp"
                        android:layout_marginTop="65dp"
                        android:layout_toLeftOf="@+id/editText1"
                        android:text="City"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText8"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_below="@+id/editText6"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="40dp"
                        android:layout_toLeftOf="@+id/line1"
                       >
                    </EditText>

                    <TextView
                        android:id="@+id/textView10"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/textView8"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="70dp"
                        android:layout_toRightOf="@+id/line1"
                        android:text="State"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <Spinner
                        android:id="@+id/editText9"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/editText7"
                        android:layout_marginRight="40dp"
                        android:layout_marginTop="40dp"
                        android:background="@drawable/spinner_bg"
                        android:maxLength="2"
                        android:paddingLeft="5dp"
                        android:paddingRight="5dp"
                        android:singleLine="true"
                        android:textColor="@color/app_text_color" />

                    <TextView
                        android:id="@+id/textView11"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView9"
                        android:layout_marginLeft="80dp"
                        android:layout_marginTop="70dp"
                        android:layout_toLeftOf="@+id/editText1"
                        android:text="Zip"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText10"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_below="@+id/editText8"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="42dp"
                        android:layout_toLeftOf="@+id/line1"
                        >
                    </EditText>

                    <TextView
                        android:id="@+id/textView12"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/textView10"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="62dp"
                        android:layout_toRightOf="@+id/line1"
                        android:text="Validate Address"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <TextView
                        android:id="@+id/textView13"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView11"
                        android:layout_marginLeft="80dp"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="70dp"
                        android:layout_toLeftOf="@+id/line1"
                        android:text="Email"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText11"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_below="@+id/editText10"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="45dp"
                        android:layout_toLeftOf="@+id/line1"
                        android:background="@drawable/txt1"
                      >
                    </EditText>

                    <TextView
                        android:id="@+id/textView14"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/textView12"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="70dp"
                        android:layout_toRightOf="@+id/line1"
                        android:text="Home Phone"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText12"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/textView12"
                       >
                    </EditText>

                    <TextView
                        android:id="@+id/textView15"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView13"
                        android:layout_marginLeft="80dp"
                        android:layout_marginTop="52dp"
                        android:layout_toLeftOf="@+id/editText1"
                        android:text="SSN"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText14"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_below="@+id/editText12"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="45dp"
                        android:layout_toLeftOf="@+id/line1"
                        android:background="@drawable/txt1"
                        android:ems="10"
                        android:inputType="number"
                        android:maxLength="11"
                        android:paddingLeft="5dp"
                        android:paddingRight="5dp"
                        android:singleLine="true"
                        android:textColor="@color/app_text_color" >
                    </EditText>

                    <TextView
                        android:id="@+id/textView16"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/textView14"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="65dp"
                        android:layout_toRightOf="@+id/line1"
                        android:text="Member ID"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText15"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/editText12"
                        android:layout_marginRight="40dp"
                       >
                    </EditText>

                    <TextView
                        android:id="@+id/textView17"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView15"
                        android:layout_marginLeft="80dp"
                        android:layout_marginTop="70dp"
                        android:layout_toLeftOf="@+id/editText1"
                        android:text="Group ID"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText16"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_below="@+id/editText14"
                        android:layout_marginRight="30dp"
                        android:layout_marginTop="45dp"
                        android:layout_toLeftOf="@+id/line1"
                       >
                    </EditText>

                    <TextView
                        android:id="@+id/textView18"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/textView16"
                        android:layout_marginLeft="30dp"
                        android:layout_marginTop="64dp"
                        android:layout_toRightOf="@+id/line1"
                        android:text="Employee ID"
                        android:textColor="@color/app_text_color"
                        android:textSize="25dp" />

                    <EditText
                        android:id="@+id/editText17"
                        android:layout_width="341dp"
                        android:layout_height="60dp"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/editText15"
                        android:layout_marginRight="40dp"
                        android:layout_marginTop="42dp"
                        >
                    </EditText>

                    <RelativeLayout
                        android:id="@+id/rel"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_alignParentBottom="true"
                        android:layout_below="@+id/editText17"
                        android:layout_marginBottom="20dp"
                        android:layout_marginTop="20dp" >

                        <Button
                            android:id="@+id/button1"
                            android:layout_width="200dp"
                            android:layout_height="57dp"
                            android:layout_alignParentLeft="true"
                            android:layout_marginLeft="400dp"
                            android:background="@drawable/bt_register" />

                        <Button
                            android:id="@+id/button2"
                            android:layout_width="200dp"
                            android:layout_height="57dp"
                            android:layout_alignParentRight="true"
                            android:layout_marginRight="400dp"
                            android:background="@drawable/bt_reset" />
                        <RelativeLayout
                        android:id="@+id/rel"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_alignParentBottom="true"
                        android:layout_below="@+id/button1"
                        ></RelativeLayout>
                    </RelativeLayout>
                </RelativeLayout>
            </RelativeLayout>
        </ScrollView>
    </RelativeLayout>

</LinearLayout>

我为视图字段提供了空x xml文件

 <View
                    android:id="@+id/line1"
                    android:layout_width="2dp"
                    android:layout_height="match_parent" 
                    android:layout_centerInParent="true"
                    android:background="@android:color/transparent" />

请帮我解决。

0 个答案:

没有答案