El arsenal de Android - Vistas
[ad_1]
RasmView es una biblioteca de dibujo de Android; Proporciona una vista que permite a los usuarios dibujar en un mapa de bits.
manifestación
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:
dependencies {
implementation 'com.raedapps:rasmview:1.2.0'
}
Experto:
<dependency>
<groupId>com.raedapps</groupId>
<artifactId>rasmview</artifactId>
<version>1.2.0</version>
</dependency>
Instrucciones de uso
Agregue lo siguiente a su archivo de diseño:
<com.raed.rasmview.RasmView
android:id="@+id/rasmView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
RasmContext
RasmContext
le permite controlar la configuración del pincel, deshacer/rehacer, restablecer la transformación y mucho más. RasmContext
se puede acceder desde RasmView
:
val rasmView = findViewById<RasmView>(R.id.rasmView)
val rasmContext = rasmView.rasmContext
Cambiando el pincel
Puedes usar el... 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
El valor del canal alfa se ignora, 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 = ... //load your bitmap whether from a URI or resources
rasmContext.setRasm(imageBitmap)
rasmView.resetTransformation()
obtener dibujo
val drawingBitmap = rasmContext.exportRasm()
color de fondo
rasmContext.setBackgroundColor(Color.BLACK)
Deshacer rehacer
val rasmState = rasmContext.state
rasmState.undo()
rasmState.redo()
Pero no quiere dejar 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.canCallRedo()
Eliminar el dibujo
Habilitar rotación
rasmContext.rotationEnabled = true
restablecer transformar
rasmView.resetTransformation()
Si encontró un error, abra un problema.
licencia
Copyright 2022 Raed Mughaus
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
[ad_2]
Subir
Deja una respuesta