/ / Anulación: mismo onDraw para muchos elementos de vista (botón, vista de texto) - java, android

Anulación: mismo onDraw para muchos elementos de vista (botón, vista de texto) - java, android

Necesito dibujar bordes personalizados en Android para todas las vistas en mi pantalla. Cada vista tendrá diferentes parámetros. Para ello, pensé en hacer nuevos. CustomBotton, CustomTextView Clases etc. y redefinir sus onDraw() metodos Pero los métodos contendrán el mismo código, por lo que no es bueno

  1. Hacer nuevas clases para esas vistas y
  2. reescribir lo mismo onDraw() Método con el mismo código.

¿Hay una manera más elegante / rápida de hacer esto?

Respuestas

1 para la respuesta № 1

Haga algo como esto para obtener una solución simple y rápida (Hacer las cosas rápido siempre tiene un compromiso de rendimiento).

  1. No trates con onDraw para cualquier vista.

  2. Haz una sola clase extendiendo LinearLayout.

    2.1 Establezca el fondo de este Linearlayout como color de su borde.

    2.1.1 - More better read border color attribute from xml at runtime.
    

    2.2 Establecer su relleno como ancho de su borde.

    2.3 Establezca su ancho y alto como wrap_content y wrap_content respectivamente.

  3. Añade una vista única a este LinearLayout. Ya sea programáticamente o vía xml.

    <com.example.BorderLinearLayout >
    
    <ImageView /> // or whatever. But a single view or viewgroup only
    
    </com.example.BorderLinearLayout>
    

Espero que esto ayude