view.getDrawingCache () работает только один раз

У меня есть RelativeLayout с загруженным растровым изображением на примере Touch V2 из Pragmatic Bookshelf -http://media.pragprog.com/titles/eband3/code/Touchv2/src/org/example/touch/Touch.java

Я добавил отдельную кнопку с onclicklistener, которая при нажатии загружает изображение из галереи. В результате действия изображение загружается как растровое изображение в RelativeLayout:

    public void getPictureFromFile(Uri targetUri){
    try {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = scale(getContentResolver()
                .openInputStream(targetUri));
        workinprogress = BitmapFactory.decodeStream(
                getContentResolver().openInputStream(targetUri),
                null, options);
        view.setImageBitmap(workinprogress);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

Следующим нажатием кнопки я получаю изображение относительного слоя, используя:

                thepicture.buildDrawingCache(true);
            Bitmap bm = Bitmap.createBitmap(thepicture.getDrawingCache());

Процесс работает потрясающе - для первого изображения. Когда я снова загружаю другое изображение, переданное растровое изображение остается таким же, как и оригинал. Я пробовал функции thepicture.invalidate () и thepicture.resetDrawableState () перед getDrawingCache (), но ни один из них не обновляет изображение до вновь загруженного изображения, хотя макет кадра отображает правильное изображение.

Есть ли что-то, чего я не понимаю в обновлении DrawingCache, которое мне нужно реализовать для второго загружаемого изображения?

Ответы на вопрос(1)

Ваш ответ на вопрос