Vários valores de enumeração/constantes do efeito de sombra Android Paint e ShadowLayer

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~

Acho que você gosta

Origin blog.csdn.net/leyang0910/article/details/131790669
Recomendado
Clasificación