Size: a a a

Xamarin Developers

2020 September 10

MA

Makc Artemiev in Xamarin Developers
Да
источник

MA

Makc Artemiev in Xamarin Developers
Там чуть ниже подсказали )
источник

e

entdark in Xamarin Developers
Makc Artemiev
Ребят, такой вопрос. Xamarin native iOS . У вас по нажатию на кнопку есть событие затемнения или что-то такое? У меня когда она на скроллвью лежит и я листаю, иногда срабатывает событие затемнения , а обратное не срабатывает и она остаётся темная . Как вы это решаете ?
В свойствах ячейки выберите выделение отсутствующее
источник

e

entdark in Xamarin Developers
Можно прямо в xcode
источник

MA

Makc Artemiev in Xamarin Developers
entdark
В свойствах ячейки выберите выделение отсутствующее
? Там и не выделяются они никак
источник

MA

Makc Artemiev in Xamarin Developers
Но я с этим вроде тоже разобрался , там подсказали как сделать
источник

e

entdark in Xamarin Developers
Ок, неверно понял проблему
источник

e

entdark in Xamarin Developers
Кастомная кнопка нужна, а не системная
источник

ВЧ

Валерий Чесноков... in Xamarin Developers
Добрый вечер.
Есть задача - в Android XF снимать скриншоты со всего экрана (full screen shots), с заданной частотой, например, 2 раза в секунду.

У вас есть рабочий код?
Примеры типа https://stackoverflow.com/questions/56931761/how-can-i-capture-screenshot-of-a-screen-with-a-popup-in-xamarin-in-android - не работают (
источник

e

entdark in Xamarin Developers
Валерий Чесноков
Добрый вечер.
Есть задача - в Android XF снимать скриншоты со всего экрана (full screen shots), с заданной частотой, например, 2 раза в секунду.

У вас есть рабочий код?
Примеры типа https://stackoverflow.com/questions/56931761/how-can-i-capture-screenshot-of-a-screen-with-a-popup-in-xamarin-in-android - не работают (
И что в этом ответе вам не подходит?
источник

ВЧ

Валерий Чесноков... in Xamarin Developers
entdark
И что в этом ответе вам не подходит?
Код:
View rootView = MainActivity.activity.Window.DecorView.RootView;
не компилируется.

И даже так - тоже:
View rootView = Droid.MainActivity.activity.Window.DecorView.RootView;
источник

ВЧ

Валерий Чесноков... in Xamarin Developers
I want make FULL screenshot on Android from Xamarin Forms
источник

KM

Kiryl Mashkantsev in Xamarin Developers
Всем привет, может есть кто работал с библиотекой Shiny.beacon. Есть пару вопросов
источник

KA

Kirill Ashikhmin in Xamarin Developers
Валерий Чесноков
Код:
View rootView = MainActivity.activity.Window.DecorView.RootView;
не компилируется.

И даже так - тоже:
View rootView = Droid.MainActivity.activity.Window.DecorView.RootView;
ну тут надо брать инстанс активити. И через подсказки кода смотрите это метод или свойство
источник

KA

Kirill Ashikhmin in Xamarin Developers
Валерий Чесноков
Код:
View rootView = MainActivity.activity.Window.DecorView.RootView;
не компилируется.

И даже так - тоже:
View rootView = Droid.MainActivity.activity.Window.DecorView.RootView;
Ну, и, естественно, это надо делать в Android проекте, а не в общем
источник

KA

Kirill Ashikhmin in Xamarin Developers
Window.DecorView.RootView; находится в активити, всё норм
источник

ВЧ

Валерий Чесноков... in Xamarin Developers
/// <summary>
   /// IScreenshotService
   /// </summary>
   public interface IScreenshotService
   {
       byte[] Capture();
   }

   /// <summary>
   /// ScreenshotService
   /// </summary>
   public class ScreenshotService ///: IScreenshotService
   {
       private static Activity _currentActivity;

       public static void SetActivity(Activity activity)
       {
           _currentActivity = activity;
       }

       public static byte[] Capture()
       {
           var rootView = _currentActivity.Window.DecorView.RootView;

           using (var screenshot = Bitmap.CreateBitmap(
                                   rootView.Width,
                                   rootView.Height,
                                   Bitmap.Config.Argb8888))
           {
               var canvas = new Canvas(screenshot);
               rootView.Draw(canvas);

               using (var stream = new MemoryStream())
               {
                   screenshot.Compress(Bitmap.CompressFormat.Png, 90, stream);
                   return stream.ToArray();
               }
           }
       }
   }
источник

ВЧ

Валерий Чесноков... in Xamarin Developers
Этот код делает снимок, тестирую. Возможно, это только с текущего окна приложения снимок, а не всего девайса.
источник

ВЧ

Валерий Чесноков... in Xamarin Developers
Валерий Чесноков
/// <summary>
   /// IScreenshotService
   /// </summary>
   public interface IScreenshotService
   {
       byte[] Capture();
   }

   /// <summary>
   /// ScreenshotService
   /// </summary>
   public class ScreenshotService ///: IScreenshotService
   {
       private static Activity _currentActivity;

       public static void SetActivity(Activity activity)
       {
           _currentActivity = activity;
       }

       public static byte[] Capture()
       {
           var rootView = _currentActivity.Window.DecorView.RootView;

           using (var screenshot = Bitmap.CreateBitmap(
                                   rootView.Width,
                                   rootView.Height,
                                   Bitmap.Config.Argb8888))
           {
               var canvas = new Canvas(screenshot);
               rootView.Draw(canvas);

               using (var stream = new MemoryStream())
               {
                   screenshot.Compress(Bitmap.CompressFormat.Png, 90, stream);
                   return stream.ToArray();
               }
           }
       }
   }
Его вызов:

               int screens_count = 5; // ЧИСЛО СКРИНОВ

               byte[] screenshotData = null;
               string imagePath = "";

               for (int i = 0; i < screens_count; i++)
               {
                   //byte[] screenshotData = DependencyService.Get<XamarinFL34.Droid.IScreenshotService>().Capture();
                   screenshotData = XamarinFL34.Droid.ScreenshotService.Capture();

                   // Save ScreenShot Data to File //
                   //var imagePath = System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).ToString(), "XamarinFL34");
                   imagePath = System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).Path, "XamarinFL34");

                   if (!System.IO.Directory.Exists(imagePath.ToString()))
                   {
                       Directory.CreateDirectory(imagePath);
                   }

                   imagePath = System.IO.Path.Combine(imagePath, "img" + System.Environment.TickCount + ".jpg");

                   using (var fileOutputStream = new FileOutputStream(imagePath))
                   {
                       await fileOutputStream.WriteAsync(screenshotData);
                   }

                   // Sleep current thread
                   await Task.Delay(2000); //Simulates a 0.5 second wait
               }

               // Show Message
               await DisplayAlert("Сообщение", screens_count + " ScreenShots saved, last file: " + imagePath, "OK");
источник

KA

Kirill Ashikhmin in Xamarin Developers
Валерий Чесноков
Этот код делает снимок, тестирую. Возможно, это только с текущего окна приложения снимок, а не всего девайса.
ну да, это толькос приложения
источник