El arsenal de Android – Vistas

RasmView es una biblioteca de dibujo de Android; Proporciona una vista que permite a los usuarios dibujar en un mapa de bits.
Contenidos
manifestación
https://www.youtube.com/watch?v=8qYhwjleT_8
características
- 8 pinceles ya definidos, y puedes definir los tuyos propios.
- Dibujar sobre imágenes.
- Operaciones de deshacer/rehacer.
- Acercar/alejar, rotar y mover.
- Color de fondo personalizado.
Descargar
Grado:
dependencias {implementación ‘com.raedapps:rasmview:1.2.0’ }
Experto:
Instrucciones de uso
Agregue lo siguiente a su archivo de diseño:
RasmContext
Con RasmContext puede controlar la configuración del pincel, deshacer/rehacer, restablecer la transformación y mucho más. Se puede acceder a RasmContext desde RasmView: val rasmView = findViewById
Cambiando el pincel
Puede usar BrushesRepository para obtener un pincel ya definido. val brushesRepository = BrushesRepository(resources) rasmContext.brushConfig = brushesRepository.get(Brush.Marker) Los siguientes pinceles ya están definidos: enum class Brush { Pencil, Pen, Calligraphy, AirBrush, Marker, HardEraser, SoftEraser, }
pincel de color
Para cambiar el color del pincel: rasmContext.brushColor = Color.RED rasmContext.brushColor = 0xff2187bb.toInt() //ARGB Se ignora el valor del canal alfa, puede controlar alfa configurando brushConfig.flow.
Tamaño del pincel y otras configuraciones
val brushConfig = rasmContext.brushConfig brushConfig.size = 0.5f brushConfig.flow = 0.25f brushConfig.isEraser = true
Pinceles personalizados
val myStampBitmap = … val customBrushConfig = BrushConfig() customBrushConfig.stamp = BrushStamp.BitmapStamp(myStampBitmap) customBrushConfig.size = 0.25f customBrushConfig.spacing = 0.1f rasmContext.brushConfig = customBrushConfig
Dibuja en un mapa de bits (tu propia imagen).
val imageBitmap = … //carga mapa de bits, ya sea desde URI o recurso rasmContext.setRasm(imageBitmap) rasmView.resetTransformation()
obtener dibujo
val dibujoBitmap = rasmContext.exportRasm()
color de fondo
rasmContext.setBackgroundColor(Color.NEGRO)
Deshacer rehacer
val rasmState = rasmContext.state rasmState.undo() rasmState.redo() Pero no desea mantener sus botones activados cuando no es posible deshacer/rehacer, puede escuchar las actualizaciones de estado: undoButton.setOnClickListener { rasmState.undo( ) } redoButton .setOnClickListener { rasmState.redo() } rasmState.addOnStateChangedListener { undoButton.isEnabled = rasmState.canCallUndo() redoButton.isEnabled = rasmState.canCallRedo() } undoButton.isEnabled = rasmState.canCallUndo() redoButton.isEnabled = rasmState. puedeLlamarRehacer()
Eliminar el dibujo
Habilitar rotación
rasmContext.rotationEnabled = verdadero
restablecer transformar
rasmView.resetTransformation() Si encontró un error, abra un problema.
licencia
Copyright 2022 Raed Mughaus Con licencia de Apache License, versión 2.0 (la «Licencia»); Puede usar este archivo solo de acuerdo con la licencia. Puede obtener una copia de la licencia en http://www.apache.org/licenses/LICENSE-2.0. Salvo que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye «TAL CUAL». SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, EXPRESAS O IMPLÍCITAS. Consulte la licencia para conocer el idioma específico que rige los permisos y las limitaciones de la licencia.