Я использую FingerPaintCanvasView из этого образца ксамарина .
Я работаю с 2 слоя . Первый слой - ImageView , на котором я хочу рисовать. Второй слой - PaintCanvasView для рисования.
<RelativeLayout
android:layout_height="match_parent"
android:layout_width="match_parent">
<ImageView
android:id="@+id/markImageImageView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<fingerpaint.FingerPaintCanvasView
android:id="@+id/canvasMarkMeta"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
Холст имеет прозрачный фон, а параметры макета обоих видов задаются программно. Таким образом, маркировка работает нормально.
Теперь вопрос в том, как я могу объединить этот вид изображения с холстом маркировки с минимально возможной потерей качества в отдельный файл (растровое изображение или файл изображения в FileSystem).
Позвольте мне объяснить, почему я упомянул о потере качества:
Например, изображение на заднем плане имеет размер 1920x1080 от камеры устройства. Дисплей имеет только 1280x800 пикселей. Так как я не могу разместить изображение на дисплее, мне нужно отобразить уменьшенную версию И пометка происходит в уменьшенной версии.
EDIT:
@ Джо ЛВ:
Это ваше демо без изменений, развернутых на моих устройствах:
Lenovo Yoga 3, Android 6.0.1
Huawei Honor 8, Android 7.0
Скоро попробую эмулятор Android 8.
Пиксель 2XL, Android 8.1
Так что этот метод не работает для API <= 24 </strong> :-(
(API 25 и 26 не тестировались)
markImageImageView
просто содержит изображение, которое я загружаю из хранилища устройства (может быть любое изображение)
canvasMarkMeta
- это FingerPaintCanvas из связанного шаблона, который содержит нарисованные линии.