getDrawingCache () всегда возвращает ноль - PullRequest
6 голосов
/ 20 января 2012

Я хочу захватить содержимое ImageView с помощью DrawingCache. Я написал следующий код.

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

Но я получаю только одно изображение на экране. Позже я узнал, что myScreenshot равно нулю

Я видел много сообщений о той же проблеме, но не нашел правильного решения.

Я думал, какие разрешения мы должны добавить в манифест? или для этого требуется разрешение root? Пожалуйста, помогите мне с этой проблемой.

Ответы [ 4 ]

10 голосов
/ 20 января 2012

Попробуйте позвонить buildDrawingCache() до getDrawingCache()

РЕДАКТИРОВАТЬ: Позвоните getDrawingCache(), после загрузки страницы, вместо onCreate

2 голосов
/ 23 ноября 2014

вызовите getDrawingCache () в onWindowFocusChanged (), а не в onCreate (), тогда вы не получите ноль.

1 голос
/ 12 октября 2012

Ты не делаешь iv1.buildDrawingCache(true); добавить строку перед
Bitmap myScreenshot = iv1.getDrawingCache();

0 голосов
/ 20 января 2012
imageview.setBackgroundResource(R.drawable.imageview);                 

imageview1.setBackgroundResource(R.drawable.imageview1); 

использовать эти два изображения является скрином

 <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>
...