Преобразование вида в растровые данные для сохранения в виде изображения |nativescript - PullRequest
0 голосов
/ 22 декабря 2018

Подход 1:

Вот мой код ts

 let makeImage = ViewModule.getViewById("makeImage"); 
  makeImage.android.setDrawingCacheEnabled(true);

enter image description here

Невозможно получить представление с помощью "getViewById".

Код представления:

<StackLayout id="makeImage">
                <Button text="Hi"></Button>
            </StackLayout>

Подход 2:

const view = application.android.foregroundActivity.getWindow().getDecorView().getRootView();
    view.setDrawingCacheEnabled(true);
    const bmp = android.graphics.Bitmap.createBitmap(view.getDrawingCache());
    let x = imageSourceModule.fromNativeSource(bmp);
    imageData = x.toBase64String("png");
    console.log(imageData);



 Result: Able to get the screenshot of whole page of parent. Not a mentioned section.

1 Ответ

0 голосов
/ 22 декабря 2018

Вы можете попробовать плагин nativescript-screenshot , который, конечно же, использует тот же метод для Android и имеет аналог для iOS.

Всегда используйте событие loaded для доступасобственный вид (.andorid / .ios), обеспечивающий его создание.

HTML

   <StackLayout (loaded)="onLoaded($event)">
      <Button text="Hi"></Button>
   </StackLayout>

TS

  onLoaded(event) {
      const imageSource = plugin.getImage(args.object);
  }
...