getDrawingCache() always returning null

2019-06-18 06:32发布

I want to capture The content of ImageView by using DrawingCache. I written the below code.

iv1 = (ImageView)findViewById(R.id.iv1);
iv2 = (ImageView)findViewById(R.id.iv2);            
iv1.setDrawingCacheEnabled(true);
Bitmap myScreenshot = iv1.getDrawingCache();
iv2.setImageBitmap(myScreenshot);

But I am getting only one image on screen. Later I came to know myScreenshot is null

I saw many posts regarding same problem, but no proper solution.

I thought any permissions we have to add in manifest ? or root permission required to achieve this ? Please help me regarding this problem.

4条回答
Evening l夕情丶
2楼-- · 2019-06-18 07:15

You din't do iv1.buildDrawingCache(true); add line before
Bitmap myScreenshot = iv1.getDrawingCache();

查看更多
萌系小妹纸
3楼-- · 2019-06-18 07:23

Try calling buildDrawingCache() before getDrawingCache()

EDIT: Call getDrawingCache(), after the page have loaded, instead of onCreate

查看更多
三岁会撩人
4楼-- · 2019-06-18 07:29
imageview.setBackgroundResource(R.drawable.imageview);                 

imageview1.setBackgroundResource(R.drawable.imageview1); 

use this two images is screan

 <RelativeLayout
    android:id="@+id/item"               
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="320dp"
        android:layout_height="486dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/iv1" />

    <ImageView
        android:id="@+id/ic_launcer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/iv2" />

</RelativeLayout>
查看更多
Emotional °昔
5楼-- · 2019-06-18 07:32

call getDrawingCache() in onWindowFocusChanged() and not in onCreate(), then you will not get null.

查看更多
登录 后发表回答