android imageview 圆角处理,android自定义imageview实现圆角图片

本文介绍如何在Android中自定义CircleImageView来实现圆角图片效果。通过设置属性,如边框宽度和颜色,可以创建带有圆角的图片,并提供了相应的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文实例为大家分享了android自定义imageview实现圆角图片的具体代码,供大家参考,具体内容如下

自定义图片的属性,对图片进行圆角切割

实现效果图:

0eea3cd54fc614992ae6a2b6e911b1af.png

(1)在activity_main.xml文件布局,非常简单

xmlns:app="http://schemas.android.com/apk/res-auto"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="160dp"

android:layout_marginLeft="20dp"

android:layout_marginTop="20dp"

android:layout_height="160dp"

android:layout_centerInParent="true"

android:src="@mipmap/icon"

app:civ_border_width="2dp"

app:civ_border_color="@color/colorAccent" />

2.1注意添加attrs文件,设置图片的属性,然后在java代码中引用属性,在xml文件使用相关属性

(2)MainActivity直接导入上面的布局即可,无需其他操作,如果要写监听或者其他操作,需要特别处理,这里仅仅提供显示

(3)开源的工具类,图片圆角转换工具类

package com.example.administrator.testz;

import android.content.Context;

import android.content.res.TypedArray;

import android.graphics.Bitmap;

import android.graphics.BitmapShader;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.ColorFilter;

import android.graphics.Matrix;

import android.graphics.Outline;

import android.graphics.Paint;

import android.graphics.Rect;

import android.graphics.RectF;

import android.graphics.Shader;

import android.graphics.drawable.BitmapDrawable;

import android.graphics.drawable.ColorDrawable;

import android.graphics.drawable.Drawable;

import android.net.Uri;

import android.os.Build;

import android.support.annotation.ColorInt;

import android.support.annotation.ColorRes;

import android.support.annotation.DrawableRes;

import android.support.annotation.RequiresApi;

import android.util.AttributeSet;

import android.view.MotionEvent;

import android.view.View;

import android.view.ViewOutlineProvider;

import android.widget.ImageView;

public class CircleImageView extends ImageView {

//参考网址:https://github.com/hdodenhof/CircleImageView

private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP;

private static final Bitmap.Config BITMAP_CONFIG = Bitmap.Config.ARGB_8888;

private static final int COLORDRAWABLE_DIMENSION = 2;

private static final int DEFAULT_BORDER_WIDTH = 0;

private static final int DEFAULT_BORDER_COLOR = Color.BLACK;

private static final int DEFAULT_CIRCLE_BACKGROUND_COLOR = Color.TRANSPARENT;

private static final boolean DEFAULT_BORDER_OVERLAY = false;

private final RectF mDrawableRect = new RectF();

private final RectF mBorderRect = new RectF();

private final Matrix mShaderMatrix = new Matrix();

private final Paint mBitmapPaint = new Paint();

private final Paint mBorderPaint = new Paint();

private final Paint mCircleBackgroundPaint = new Paint();

private int mBorderColor = DEFAULT_BORDER_CO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值