Android получить растровое изображение перед рисованием? - PullRequest
3 голосов
/ 14 октября 2011

Я хочу взять иерархию представлений и превратить ее в растровое изображение. Использование view.getDrawingCache () делает именно то, что я хочу, но не будет работать, если я попытаюсь сделать это до того, как будет отображено представление. Есть ли другая функция, которая будет делать то же самое, но до того, как она будет нарисована? Я хотел бы создать представление и превратить его в растровое изображение для отображения и отмены фактического представления. Если есть способ заставить представление быть нарисованным, это также может сработать. Есть идеи?

Я нашел это в предыдущем посте:

    public static Bitmap loadBitmapFromView(View v) {
         Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);                
         Canvas c = new Canvas(b);
         v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
         v.draw(c);
         return b;
    }

Это выглядит многообещающе, но когда я использую все это, я получаю полупрозрачный черный ящик.

1 Ответ

3 голосов
/ 14 октября 2011

Хорошо, я понял это.Вы можете использовать этот код, слегка измененный с этого поста .

    public static Bitmap loadBitmapFromView(View v) {
          Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);                
          Canvas c = new Canvas(b);
          v.measure(v.getLayoutParams().width, v.getLayoutParams().height); //Change from original post
          v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
          v.draw(c);
          return b;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...