No desenvolvimento do Android, geralmente usamos estilos personalizados, definindo estilos de forma ou seletores de seletor em drawables, mas às vezes se vários estilos desenhados forem necessários em um XML, e os estilos definidos neles são apenas um pouco diferentes, então a personalização de vários estilos desenhados, às vezes, que eu pensa que os arquivos XML desenhados, que podem ser utilizados.
O uso de StatelistdDrawable e GradientDdrawable
Seletor de implementação de Java:
/** * Definir seletor de fundo * * @param PressedDraw * @param normalDraw * @return */private StatelistdRawable getSelector (drawable normalDraw, drawable PressedDraw) {StatelistdRawable StatelistdRawable = new StatelistdRawable (); statelistdrawable.addstate (new int [] {Android.R.Attr.State_Selected}, PressedDraw); statelistdrawable.addState (new int [] {}, normalDraw); Retornar StatelistDrawable;}Isso é para criar um seletor no código. O tipo criado é Statelistdrawable. Você pode adicionar estado ao seletor através do addState (). No entanto, deve -se notar que, ao adicionar estado, há uma ordem. O Statelistdrawable será primeiro executar o estado mais recente adicionado. Se não for o estado, execute o seguinte estado. Se um estado em larga escala for colocado na frente, ele executará diretamente o estado em larga escala sem executar o estado subsequente. Além disso, ao adicionar estado, adicione o sinal " -" antes do estado, indicando que esse estado é falso (por exemplo: -Android.R.Attr.State_Selected), caso contrário, é verdade.
/** * Set Shape * * @param raio * @param prehillColor * @param width * @param strokecolor * @return */gradiente privado getDrawable (int raio, int filmcolor, intrawable int strokecolor) {gradientDrawable GradientDrawable = NewientDrAwable (); gradientDrawable.setCornerradius (Radius); gradientDrawable.setColor (FillColor); gradientDrawable.SetStroke (largura, Strokecolor); Retornar GradientDrawable;}Crie dinamicamente o gradiente drawable no código, que pode realizar a função do estilo de forma em estilo desenhado. O setColor é igual à cor de preenchimento em forma. SetCornerradius deve definir o Radian do canto arredondado em forma. Se você deseja definir o Radian de um único canto, pode usar o setCorNerRadii () para definir o radiano de cada canto. Setstroke () é um golpe e você precisa preencher a largura do golpe e a cor da borda.
Finalmente, uso simples:
GradienteDDrawable normal = getDrawable (0, color.white, 1, getResources (). GetColor (r.color.app_line_color)); gradientedrawable Press = getDrawable (0, color.white, 1, getResources (). pressione); textView.setBackground (seletor);
Resumir
O acima é o código Java introduzido pelo editor para definir a cor de fundo do seletor em diferentes estados. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!