1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/osard-screen-lib

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ScreenLib

License API

Версия записи

Версия V1.0.0 (2022.5.17)

  1. Выпущена на основе версии 1.0.0.beta2, функции соответствуют этому документу.

Введение

  1. Основано на MediaProjection для записи и скриншотов экрана, каждый раз при запуске будет появляться диалоговое окно авторизации пользователя;
  2. Сохраняет view и activity в виде изображений.

Подготовка к внедрению инструментария в проект

com.android.tools.build:gradle:4.2.2 или более ранняя версия, добавьте в файл build.gradle проекта:

allprojects {
    repositories {
        google()
        mavenCentral()

        //jitpack 仓库
        maven { url 'https://jitpack.io' }
    }
}

com.android.tools.build:gradle:7.0.0 или более поздняя версия, добавьте в файл settings.gradle проекта:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

        //jitpack 仓库
        maven {
            url 'https://jitpack.io'
        }
    }
}

Добавьте в файл build.gradle приложения:

dependencies {
    ...

    implementation 'com.gitee.osard:screen-lib:+'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'org.greenrobot:eventbus:3.2.0'
}

Использование

  1. ScreenCaptureUtils сохраняет View и Activity как изображения
/**
 * Если путь не установлен при сохранении, по умолчанию он будет помещён в «хранилище телефона — Android — данные — имя пакета — кэш — Pictures».
 * Имя файла по умолчанию — это временная метка.
 */
public class ScreenCaptureUtils {

    public static ScreenCaptureUtils createInstance();

    /**
     * @param path Путь сохранения, пустой путь недействителен, относительный путь не может определить местоположение хранения.
     */
    public ScreenCaptureUtils setImagePath(String path);

    /**
     * @param path      Путь сохранения
     * @param videoName Имя сохраняемого файла
     */
    public ScreenCaptureUtils setImagePath(String path, String videoName);

    /**
     * @param imageName Имя файла
     */
    public ScreenCaptureUtils setImageName(String imageName);

    /**
     * Снимает скриншот текущего Activity
     * <p>
     * Если текущий Activity невидим, то View получить невозможно.
     */
    public ScreenCaptureUtils setView(@NonNull Activity activity);

    /**
     * Делает снимок текущего View
     */
    public ScreenCaptureUtils setView(@NonNull View view);

    /**
     * Получает снимок экрана View
     *
     * @return Возвращает bitmap, null: возникает исключение или view = null
     */
    public Bitmap screenCapture();

    /**
     * Сохраняет снимок экрана текущего View в указанный файл, сохраняя его в формате JPG
     *
     * @param quality Степень сжатия 0–100, см. {Bitmap.CompressFormat#JPEG}
     * @return Возвращает полный путь сохранения, null: возникает исключение или view = null
     */
    public String saveBitmapToJpg(int quality);

    /**
     * Сохраняет снимок экрана текущего View в указанный файл, сохраняя его в формате PNG
     *
     * @return Возвращает полный путь сохранения, null: возникает исключение или view = null
     */
    public String saveBitmapToPng();

    /**
     * Сохраняет снимок экрана текущего View в указанный файл
     *
     * @param format  Формат, см. {Bitmap.CompressFormat}
     * @param quality Степень сжатия, см. {Bitmap.CompressFormat}
     * @return Возвращает полный путь сохранения, null: возникает исключение или view = null
     */
    public String saveBitmap(Bitmap.CompressFormat format, int quality);
}
  1. ScreenRecordUtils видеозапись
  • Перед началом записи необходимо инициализировать.
/**
 * Если путь не задан при начале записи, по умолчанию он будет размещён в «хранилище телефона — Android — data — имя пакета — кеш — Movies».
 * Имя файла по умолчанию — это временная метка.
 * <p>
 * Автор: MJSoftKing
 */
public class ScreenRecordUtils {

    /**
     * Инициализирует видеозапись с помощью собственного сервиса приложения.
     *
     * @param application app
     */
    public static void init(Application application);

    /**
     * Использует наследование ScreenRecordService для перезаписи службы переднего плана уведомления.
     * При многократной инициализации используется первая инициализация.
     *
     * @param application APP
     * @param serviceName Класс, который наследует ScreenRecordService
     */
    public static void init(Application application, Class<? extends ScreenRecordService> serviceName);

    /**
     * Записывает видео в альбом с вертикальным или горизонтальным экраном.
     *
     * @param videoPath Полный путь к видео, например: «/storage/emulated/0/Android/data/имя пакета/cache/Movies/»
     * @param videoName Название видео, суффикс — «.mp4».
     * @param direction Направление записи экрана
     */
    public static boolean start(@Nullable String videoPath,
                                @Nullable String videoName,
                                @Nullable ScreenRecordDirectionEnum direction);

    /**
     * Записывает видео в альбом с вертикальным или горизонтальным экраном.
     *
     * @param videoPath Полный путь к видео, например: «/storage/emulated/0/Android/data/имя пакета/cache/Movies/»
     * @param videoName Название видео, суффикс — «.mp4».
     */
    public static boolean

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

На устройствах Android запись экрана и создание снимков экрана выполняются на основе MediaProjection. При каждом запуске появляется диалоговое окно авторизации пользователя. Развернуть Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/osard-screen-lib.git
git@api.gitlife.ru:oschina-mirror/osard-screen-lib.git
oschina-mirror
osard-screen-lib
osard-screen-lib
master