¿Qué necesito saber para crear mis propias vistas personalizadas en Android?

Solo necesitas saber Java. Una vista es como cualquier otro objeto, es una instancia de una clase. Y las clases pueden generarse a partir de la nada, o ampliarse. Los primeros son nuevos tipos de vista, los segundos, vistas compuestas. El primer tipo es para cubrir una nueva necesidad, los segundos son para mejorar un tipo existente o crear una aplicación más potente y más fácil de mantener.

Para un ejemplo de vista compuesta, en lugar de hacer referencia directa a los componentes del diseño dentro de una actividad / fragmento, puede crear una vista personalizada que los contenga.

La clase abstracta pública AbstractMainView extiende RelativeLayout {

interfaz pública mainViewActions {

// cosas que tu vista principal debería hacer

}

mainViewActions protegido viewActions;

// Las partes comunes vienen aquí

}

clase pública MainViewForPhones extiende AbstracMainView {

título privado de TextView;

// Todos los detalles para pantallas de teléfono

}

Este enfoque le permite crear una aplicación para varias configuraciones de dispositivos con bastante facilidad. Y crea su diseño en XML de la forma habitual; en cierto modo, cuando crea un diseño XML, crea una subclase de Diseño que contiene widgets como miembros.

En cuanto a los ejemplos de vista personalizada, solo tiene que extender la clase de vista y anular el método onDraw. Puede encontrar algunos ejemplos aquí: Un directorio categorizado de bibliotecas y herramientas para Android | Android-Arsenal.com

Normalmente hay 3 razones diferentes para hacer una vista personalizada. Todos implican crear una nueva clase Java que amplíe la clase View o uno de sus hijos.

Tal vez desee usar una Vista existente (como TextView o ImageView) pero hacer que se comporte de manera un poco diferente. A veces esto se puede lograr mediante la configuración de algunos de los atributos en la vista. De lo contrario, crearía una nueva clase que amplíe esa clase de Vista particular y anule algunos métodos para alterar su comportamiento.

Tal vez desee crear un nuevo tipo de vista que combine varias otras Vistas existentes. Crearía una nueva clase que extienda algún elemento secundario de ViewGroup (como LinearLayout o FrameLayout) y agregue algunas vistas secundarias a sí mismo para agruparlas.

Tal vez desee crear un nuevo tipo de vista que se vea y se comporte de manera completamente diferente a todo lo que ya existe. Luego, simplemente puede crear una nueva clase que extienda la clase View directamente y anular los métodos onDraw () y onTouchEvent () para que la vista se vea y actúe como desee.

Ahora, si su Vista personalizada es muy gráfica, la anulación simple de la clase Vista puede ser demasiado lenta. Considere extender la clase TextureView y usar opengl en su lugar.

Como su pregunta es un poco vaga, no estoy seguro de cuáles son estos caminos que debe elegir. ¿Quizás pueda proporcionar un objetivo más detallado?

Solo necesita saber acerca de la programación de Android .in que debe saber cómo crear un archivo XML y simplemente usar ese archivo en la actividad usando la clase de administrador de diseño.