Сделайте правильный скриншот - PullRequest
0 голосов
/ 05 ноября 2018

Я хотел бы попросить помощи. Я хочу сделать скриншот. Это работает, но закругленные углы ImageView не округляются на снятых скриншотах (и тени высот тоже отсутствуют). Я использовал

imageView.setClipToOutline(true);

чтобы это работало на телефоне, но на скриншотах они прямоугольные.

Вот мои скриншоты:

открытый класс ScreenShotUtils {

public static Bitmap screenShotFromCanvas(View view) {
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
            view.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    return bitmap;
}

public static Bitmap screenShotFromDrawingCache(View view) {
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();

    Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());

    view.destroyDrawingCache();
    view.setDrawingCacheEnabled(false);

    return bitmap;
}

Оба метода имеют одинаковый результат.

Однако я заметил, что если я выключу аппаратное ускорение, макет будет выглядеть так же, как на скриншотах.

Вот как это выглядит после снимка экрана: enter image description here

Вот как это должно быть: enter image description here

1 Ответ

0 голосов
/ 06 ноября 2018

Наконец я решил мою проблему с MediaProjectionManager.

...