Задать вопрос
dedmarazmon
@dedmarazmon

Как сохранить в Bitmap полностью прорисованный ScrollView?

Вот код:
public static Bitmap getBitmapFromView(View view, int totalHeight, int totalWidth) {
        Bitmap returnedBitmap = Bitmap.createBitmap(totalWidth,totalHeight , Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(returnedBitmap);
        Drawable bgDrawable = view.getBackground();
        if (bgDrawable != null)
            bgDrawable.draw(canvas);
        else
            canvas.drawColor(Color.WHITE);
        view.draw(canvas);
        return returnedBitmap;
    }


Если передаю ScrollView получаю:

d18a73e18b1345709b4a806de5749965.png

Передаю ViewGroup в котором содердитсяScrollView получаю:

b4bc1f1c5e444382adb33c58001f3faf.png

Есть вариант сохранить ViewGroup с ToolBar и полностью развернутый ScrollView?
  • Вопрос задан
  • 178 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@lazard105
Вы забыли вызвать метод measure

Исправьте вот так:
public static Bitmap getBitmapFromView(View view, int totalHeight, int totalWidth) {
        Bitmap returnedBitmap = Bitmap.createBitmap(totalWidth,totalHeight , Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(returnedBitmap);
        Drawable bgDrawable = view.getBackground();
        if (bgDrawable != null)
            bgDrawable.draw(canvas);
        else
            canvas.drawColor(Color.WHITE);

        view.measure( View.MeasureSpec.makeMeasureSpec(totalWidth,View.MeasureSpec.EXACTLY),
                View.MeasureSpec.makeMeasureSpec(totalHeight,View.MeasureSpec.EXACTLY));
        view.layout(0,0,totalWidth,totalHeight);

        view.draw(canvas);
        return returnedBitmap;
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы