En el desarrollo de Android, a menudo usamos estilos dibujables personalizados, estilos de forma de configuración o selectores de selectores en Drawables, pero a veces si se necesitan múltiples estilos de dibujo en un XML, y los estilos establecidos en ellos son solo ligeramente diferentes, entonces la personalización de múltiples estilos dibujables se verá hinchado, haciendo que los dibujables sean demasiados archivos XML, que es problemático de administrar, por lo que a veces creo que creo que eso puedo crear dibujos en el código.
El uso de estatales
Selector de implementación de Java:
/** * Establecer Selector de fondo * * @param pressedDraw * @param normalDraw * @return */private statelIstDrawable getSelector (Drawable NormalDraw, Drawable PressDDraw) {stateListDrawable statelIstDrawable = new StatElStDrawable (); statelistDrawable.AddState (new int [] {android.r.attr.state_selected}, pressedDraw); statelistDrawable.AddState (new int [] {}, normalDraw); return statelistDrawable;}Esto es para crear un selector en el código. El tipo creado es statelistDrawable. Puede agregar estado al selector a través de AddState (). Sin embargo, debe tenerse en cuenta que al agregar estado, hay un pedido. StatelistDrawable ejecutará por primera vez el último estado agregado. Si no es el estado, ejecute el siguiente estado. Si se coloca un estado a gran escala al frente, ejecutará directamente el estado a gran escala sin ejecutar el estado posterior. Además, al agregar estado, agregue el signo " -" antes del estado, lo que indica que este estado es falso (por ejemplo: -android.r.Attr.State_Selected), de lo contrario es cierto.
/** * Establecer forma * * @param radio * @param relleno * @param ancho * @param strokecolor * @return */private gradientegrawable getDrawable (int radius, int fillColor, int GradientDrawable.SetCorRadius (radio); GradientDrawable.SetColor (FillColor); GradientDrawable.setstroke (ancho, strokecolor); return gradienteDrawable;}
Crear dinámicamente GradientDrawable en el código, que puede realizar la función del estilo de forma en estilo dibujable. SetColor es igual al color de relleno en forma. SetCorRadius debe colocar el radian de la esquina redondeada en forma. Si desea establecer el radian de una sola esquina, puede usar SetCorRadii () para establecer el radian de cada esquina. Setstroke () es un golpe, y debe completar el ancho del trazo y el color del borde.
Finalmente, uso simple:
GradientDrawable Normal = getDrawable (0, color.white, 1, getResources (). GetColor (r.color.app_line_color)); GradientDrawable Press = getDrawable (0, color.white, 1, getResources (). GetColor (config.currentThemecolorid); Presione); TextView.SetBackground (selector);
Resumir
El anterior es el código Java introducido por el editor para establecer el color de fondo del selector en diferentes estados. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!