Introdução a esta seção:
Entramos em contato com os parâmetros do método do Paint: Paint.Style, Paint.Cap, Paint.Join, etc. Esses são alguns valores de enumeração no Paint. Podemos definir métodos específicos definindo esses valores de enumeração. Efeitos como: Estilo: estilo de pincel, método de combinação de gráficos Join, etc. Nesta seção, entraremos no código-fonte do Paint e apresentaremos esses valores de enumeração um a um. a configuração ShadowLayer Pinte com efeitos de sombra! Abra o código-fonte da classe Paint, podemos ver os seguintes valores de enumeração:
Bem, não BB, vamos começar esta seção!
1. Obtenha o uso da enumeração:
Não sei se você não conhece ou conhece enumeração, aqui está o código de chamada relacionado ao Paint.Style (enumeração com método de construção de parâmetros), para que todos possam experimentar:
public enum Style { //Define enumeração, atribui valores através de colchetes FILL (0), STROKE (1), FILL_AND_STROKE (2); //construi método com parâmetros Style(int nativeInt) { this.nativeInt = nativeInt; } final int nativeInt ; } //Método de configuração do estilo do pincel public void setStyle(Style style) { native_setStyle(mNativePaint, style.nativeInt); } //Método JNI de configuração do estilo do pincel, aqui não precisamos prestar atenção ao private static nativo void native_setStyle(objeto_nativo longo, estilo int);
Vamos explicar o papel desses valores de enumeração um por um!
1.Pintura.Estilo
Função: O estilo do pincel. Valores opcionais:
- FILL : preencher dentro (padrão)
- STROKE : apenas curso
- FILL_AND_STROKE : Preenche o interior com o traço
Chamada de método: setStyle(estilo Paint.Style) efeito correspondente:
2.Paint.Cap
Função: estilo de traço, define a forma do início e fim do pincel (o primeiro ponto e o último ponto que o pincel começa a desenhar) Valores opcionais:
- BUTT : O curso é retangular e não excede o caminho (padrão)
- ROUND : o traço é um círculo
- QUADRADO : o traço é um quadrado
Chamada de método: setStrokeCap(Paint.Cap cap)
Efeito correspondente: Normalmente, desenhamos diretamente o primeiro, os outros dois serão um pouco mais do que a área externa normal, o segundo é um canto arredondado e o terceiro é um retângulo!
3.Pintar.Juntar
Função: Defina o estado da junta, por exemplo, sua linha é composta de várias linhas pequenas e a forma da junta pode ser selecionada da seguinte forma:
- MITRE : Cantos agudos nas junções (padrão)
- ROUND : A junção é um arco
- BEVEL : a junção é uma linha reta
Chamada de método: setStrokeJoin(Paint.Join join)
Geralmente, os arcos circulares são muito usados, você pode consultar a exibição da demo Wipe Out Beauty Clothes
Além disso, existe um setStrokeMiter (float miter) para definir a inclinação do traço, mitra > = 0; Por exemplo: o lápis usado quando eu era criança, o efeito da ponta da caneta é diferente quando é apontado obliquamente e verticalmente. É usado principalmente para definir o estilo da conexão do traço. Pode ser comparado com setStrokeJoin().
4.Pintar.Alinhar
Função: Defina o método de alinhamento do texto de desenho, que é um valor opcional relativo às coordenadas iniciais [x, y] do texto de desenho:
- ESQUERDA : Desenha o texto à esquerda das coordenadas iniciais
- DIREITA : Desenha o texto à direita das coordenadas iniciais
- CENTER : Desenha o texto centralizado em suas coordenadas reais
Chamada de método: setTextAlign(Paint.Align align)
Efeito correspondente: Além disso, setTextSize() pode ser chamado para definir o tamanho do texto desenhado~
5.Paint.FontMetrics e Paint.FontMetricsInt
Propriedades e medição da fonte, os outros dois métodos são os mesmos, mas o valor obtido pelo último é um número inteiro, aqui escolhemos FontMetricsInt para explicar a você, existem os cinco valores constantes a seguir, o ponto de referência aqui é: A posição de o sublinhado ( linha de base )
- topo : a distância do caractere mais alto até a linha de base, ou seja, o valor máximo de subida
- ascensão : a distância do ponto mais alto do caractere até o valor da linha de base
- descida : a distância do sublinhado ao ponto mais baixo do caractere
- inferior : a distância do sublinhado ao caractere mais baixo, ou seja, o valor máximo de descida
- levando : a distância entre a descida da linha anterior de caracteres e a subida da próxima linha
Vejamos algumas imagens para facilitar o entendimento:
Em seguida, desenhamos uma sequência de letras aleatoriamente e imprimimos estes valores: canvas.drawText("abcdefghijklnmopqrstuvwxyz", 400, 400, mPaint1);
Log.e("HEHE", mPaint1.getFontMetricsInt().toString());
run , podemos ver que o Log impresso é o seguinte:Depois de ler, pense e faça um desenho, não deve ser difícil de entender! Aqui apenas sabemos, se você quiser estudar em profundidade, pode consultar o seguinte artigo: Android string avançado três: atributos e medidas de fonte (FontMetrics)
6.ShadowLayer define o efeito de sombra
Ensinamos você a definir o efeito de sombra para o texto de TextView na seção de TextView, e o Paint realmente fornece uma API para definir o efeito de sombra: setShadowLayer (float radius, float dx, float dy, int shadowColor)
Parâmetros: radius é o ângulo da sombra, dx e dy são as distâncias da sombra nos eixos x e y, e shadowColor é a cor da sombra. Podemos escrever uma frase bem simples para verificar:
mPaint1.setShadowLayer(5,0,0,Color.BLACK); canvas.drawText("Afinal, Deus~", 400, 400, mPaint1); //Desenha o texto
O efeito é o seguinte :
Além disso, também podemos chamar clearShadowLayer() para limpar a camada de sombra~