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

OSCHINA-MIRROR/osard-screen-lib

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 7.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 11:12 94c8b90

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 )

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

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