Dibujo sobre lienzo fuera del método onDraw ()

Aquí está mi método OnDraw ()

void onDraw(Canvas canvas) { mCanvas = canvas; //invalidate(); int x = 0; Iterator<Letter> it = mNextUpQueue.iterator(); while(it.hasNext()){ mCanvas.drawBitmap(it.next().getNext(), mNextUpCoordinates.get(x).x, mNextUpCoordinates.get(x).y, mPaint); mCanvas.drawBitmap(mAvailableLetters.get(x).getNotPressed(), mAvailableLettersCoordinates.get(x).x, mAvailableLettersCoordinates.get(x).y, mPaint); x++; } } 

He establecido lienzo a una variable global mCanvas. Pero si intento pintar en mCanvas desde fuera del método onDraw () obtengo un error. ¿Es porque estoy haciendo algo mal o el lienzo siempre debe ser utilizado desde dentro del método onDraw?

One Solution collect form web for “Dibujo sobre lienzo fuera del método onDraw ()”

No debe tomar la referencia al Canvas pasada, ya que sólo es válida durante la llamada al método onDraw(Canvas) .

Recomiendo leer http://developer.android.com/guide/topics/graphics/2d-graphics.html#draw-with-canvas a fondo, las formas posibles se explican muy bien:

  1. A la lona proporcionada al método onDraw(Canvas) , durante esta llamada al método. Esto se hace en el hilo de interfaz de usuario, por lo que nada complicado se debe intentar aquí
  2. A un lienzo que te creaste a ti mismo. Esto podría ser útil para preparar un mapa de bits en otro hilo y luego dibujar el mapa de bits en el lienzo dado al onDraw(Canvas)
  3. Utilizar una SurfaceView y obtener un objeto Canvas con el método lockCanvas() .
  • Widget personalizado utilizando LinearLayout no obtener onDraw ()
  • Android SweepGradient
  • drawBitmap no es de pantalla completa
  • Tratando de obtener el tamaño de visualización de una imagen en un ImageView
  • Android onDraw () ejecutándose en todas las vistas?
  • PorterduffXfermode: borra una sección de un mapa de bits
  • Android - Dibujo de un laberinto de lienzo con el movimiento de caracteres suave
  • Android: ¿Cómo usar el método onDraw en una clase que extiende Actividad?
  • Dibujar superposición (HUD) en Android VideoView?
  • ¿Cómo establecer el tamaño de la lona?
  • Flash en un WebView de Android - problema de capas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.