Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Widget personalizado utilizando LinearLayout no obtener onDraw ()

Estoy creando un widget personalizado extendiendo LinearLayout :

 public class MyWidget extends LinearLayout { private static Paint PAINT = new Paint(Paint.ANTI_ALIAS_FLAG); static { PAINT.setColor(Color.RED); } public MyWidget(Context context) { this(context, null); } public MyWidget(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(canvas.getWidth() / 2, canvas.getHeight()/2, canvas.getWidth()/2, PAINT); // never gets called :-( } @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); // this gets called, but with a canvas sized after the padding. } } 

Puedo agregar a niños apenas multa, pero nunca estoy consiguiendo mi onDraw() encargo que es llamado. dispatchDraw() se llama, pero que parece tener un lienzo diferente (el que está dentro del relleno. Tengo que dibujar en todo el área de diseño). ¿Hay alguna bandera que necesita ser configurada para obtener onDraw() llamado para el diseño?

  • Android Cómo saber qué casilla de verificación está seleccionada
  • Parse.com - Sonido personalizado de notificación push de Android
  • Cómo tomar capturas de pantalla en Android 2.3.3 sin root?
  • ¿El menú de desbordamiento de Android está situado encima de barra de herramientas / barra de herramientas?
  • Iniciar sesión con permiso adicional con Facebook SDK 3 para Android
  • Modificación de la reproducción de voz en llamada en la ROM personalizada de Android
  • Diferencia entre onResume () y onResumeFragments ()
  • Phonegap: ¿Cómo empezar con Android? - en Linux
  • Prueba de unidad con Android volley
  • FragmentPagerAdapter getItem no se llama
  • Android: ¿Puedo activar / desactivar el filtro de intención de una actividad mediante programación?
  • GridView VS GridLayout en Aplicaciones de Android
  • One Solution collect form web for “Widget personalizado utilizando LinearLayout no obtener onDraw ()”

    Necesita llamar a setWillNotDraw(false) en su constructor.

    Debido a que por defecto un diseño no necesita dibujar, por lo que una optimización es no llamar es método de dibujo. Al llamar a setWillNotDraw(false) le indica al toolkit de la interfaz de usuario que desea dibujar.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.