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.

Índice del contenido

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.

Si quieres conocer otros artículos parecidos a El arsenal de Android - Vistas puedes visitar la categoría Android.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir