ImageView de canto arredondado personalizado do Android

centro pessoal

Download

No desenvolvimento do Android , geralmente usamos o ImageView para exibir imagens, mas o ImageView padrão não oferece suporte à exibição de cantos arredondados. Podemos conseguir isso personalizando um ImageView arredondado.

Aqui estão os passos para implementar:

  1. Crie uma classe que herde de ImageView

public class RoundCornerImageView extends ImageView {

    public RoundCornerImageView(contexto de contexto) {

        super(contexto);

    }

    public RoundCornerImageView(contexto de contexto, AttributeSet attrs) {

        super(contexto, atributos);

    }

    public RoundCornerImageView(contexto de contexto, AttributeSet attrs, int defStyleAttr) {

        super(contexto, attrs, defStyleAttr);

    }

    @Sobrepor

    void protegido no Draw (tela da tela) {

        Caminho caminho = new Caminho() ;

        float [] raios = new float [] { 10 , 10 , 10 , 10 , 0 , 0 , 0 , 0 };

        path.add RoundRect(new RectF(0, 0, getWidth() , get Height() ), raios, Path.Direction.CW);

        canvas.clip Path(caminho) ;

        super.on Draw(canvas) ;

    }

}

  1. Reescrever o método onDraw de ImageView

Precisamos desenhar um caminho de recorte de um retângulo arredondado no método onDraw e limitar o conteúdo do desenho ao caminho. Você pode usar a classe Path para desenhar o caminho de recorte do retângulo arredondado e usar o método clipPath de Canvas para limitar o conteúdo desenhado.

Neste exemplo, usamos um retângulo arredondado com um raio de 10dp , no qual o raio dos primeiros quatro cantos é 10dp e o raio dos últimos quatro cantos é 0 , de modo que apenas os cantos superior esquerdo e superior direito são arredondados Efeito.

  1. Use RoundCornerImageView personalizado no arquivo de layout

<com.example.myapp.RoundCornerImageView

    android: layout_width = "200dp"

    android: layout_height = "200dp"

    android: src = "@drawable/image"

    android: scaleType = "centerCrop"

    aplicativo: layout_constraintStart_toStartOf = "pai"

    aplicativo: layout_constraintEnd_toEndOf = "pai"

    aplicativo: layout_constraintTop_toTopOf = "pai"

    aplicativo: layout_constraintBottom_toBottomOf = "pai" />

Neste exemplo, usamos um RoundCornerImageView personalizado , definimos a largura e a altura como 200dp , usamos uma imagem como src e definimos o scaleType como centerCrop para preencher todo o ImageView com a imagem. Finalmente, ConstraintLayout é usado para layout.

Através das etapas acima, podemos implementar um ImageView com cantos arredondados .

おすすめ

転載: blog.csdn.net/YDHIT/article/details/130946706