Преобразовать вид в растровое изображение с модификацией - PullRequest
1 голос
/ 29 марта 2019

Требование : пользователь должен иметь возможность поделиться макетом (который содержит изображение и текст) как изображение.

Решение, которое я попробовал:

   Bitmap b = Bitmap.createBitmap(myView.getWidth(), myView.getHeight(), Bitmap.Config.ARGB_8888);
   Canvas c = new Canvas(b);
   myView.draw(c);

Это работает, как и ожидалось. Но у меня мало вопросов.

Вопросы : У меня есть несколько кнопок и текст, который я не хочу конвертировать как изображение. Кроме того, я хочу добавить логотип приложения в качестве водяного знака на растровое изображение.

Мое решение для вышеуказанного вопроса :

  • Перед преобразованием в растровое изображение измените состояние видимости кнопки и изображения логотипа
  • Создайте еще один макет за фактическим макетом в формате общего изображения. Используйте этот макет, чтобы получить растровое изображение (не круто, эффективно, но легко)

Мой вопрос: Вышеуказанные решения действительны? Или есть какой-нибудь другой способ сделать это эффективно?

PS: я не ищу код. :)

1 Ответ

1 голос
/ 29 марта 2019

Проблема 1: да, вам нужно изменить видимость тех видов, которые вы не хотите, чтобы они были преобразованы в изображение (самый простой способ).

Проблема 2: для добавления водяного знака вы можете простонарисовать его на холсте (вы можете использовать canvas.drawBitmap) вместо того, чтобы поместить его в макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...