Преобразовать представление в данные растрового изображения для сохранения как изображения | родной сценарий

Подход 1:

Вот мой TS-код

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

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

Невозможно получить представление с помощью 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.

person Sankar    schedule 22.12.2018    source источник


Ответы (1)


Вы можете попробовать плагин 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);
  }
person Manoj    schedule 22.12.2018