Android 自定义ImageView圆形图

Android 圆角圆形ImageView(超简单实现) 前言:今天偶然看到我之前写过的一篇博客 Android项目中遇到的坑之(Android圆角圆形图 一),我在想,这不就是在模仿ImageView么,我为什么要模仿,直接拿来用不是更好么?我能直接在ImageView的源码上去改改代码? 于是就有了下面这篇文章了。先上一张效果图:效果还是很不错的,代码更简单哦~~~ 但凡搞过android的童鞋一定都知道ImageView,既然ImageView已经处 阅读详情

在这里插入图片描述

直接看代码

public class ImageViewCriCle extends AppCompatImageView{


    private Paint paint;
    private Matrix matrix;
    private float height;
    private float width;
    private float adius;

    public ImageViewCriCle(Context context) {
        this(context,null);
    }

    public ImageViewCriCle(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    public ImageViewCriCle(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        paint = new Paint();//初始化画笔
        paint.setAntiAlias(true);//扛锯齿
        matrix = new Matrix();//矩形

    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        width = getMeasuredWidth();
        height = getMeasuredHeight();
        adius = Math.min(width, height) / 2;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        Drawable drawable = getDrawable();
        if (drawable == null) {
            super.onDraw(canvas);
            return;
        }
        if (drawable instanceof BitmapDrawable) {
            paint.setShader(initBitmapShader((BitmapDrawable) drawable));
            canvas.drawCircle(width / 2, height / 2, adius, paint);
            return;
        }
        super.onDraw(canvas);
    }

    private BitmapShader initBitmapShader(BitmapDrawable drawable) {
        Bitmap bitmap = drawable.getBitmap();
        BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
        float scale = Math.max(width / bitmap.getWidth(), height / bitmap.getHeight());
        matrix.setScale(scale, scale);
        bitmapShader.setLocalMatrix(matrix);
        return bitmapShader;
    }
}
android自定义view-打造圆形ImageView(一) 前言: 大家在很多应用不难发现,用户的头像那一块的imageview是圆形的,可是我们并没有现成的圆形ImageView调用,那么最常见的思路就是自己去写一个属于自己的圆形ImageView,基于这样的出发点,今天我们就自己动手去写一个圆形ImageView方便日后直接使用。为什么标题会有(一)呢,其实打造圆形ImageView,我能想到的有三种方式, BitmapShader(渲染器 阅读详情

相关推荐

Android自定义圆形图片,设置边框

Android自定义圆形图片,可设置最多两个的外边框。包括从网络获取图片显示。 解决图片锯齿问题。 解决图片变形问题

wangqing830414的专栏 1万+

android_基础_圆形imageView的实现

四种自定义圆形ImageView的方法 BitmapShader: 使用着色器 Xfermode:使用图层叠加 ClipPath:通过对画布裁剪的方式 RoundedBitmapDrawable: 系统API圆角类 前面三种是通过继承ImageView重写onDraw()方法实现 最后一种是系统API直接使用。 每一种方式都能实现显示圆形图片, 我们主要从以下几个方面来比较各个方式的不同 实现方式难易 空白的背景 抗锯齿的能力 第1种方式:BitmapShader实现 通过对Pain

写bug的蚊子的博客 2990

Android使用自定义ImageView实现圆形图片效果

本篇文章主要介绍了Android使用自定义ImageView实现圆形图片效果,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

4- Android四种自定义圆形ImageView的方法

介绍四种自定义圆形ImageView的方法 BitmapShader: 使用着色器 Xfermode:使用图层叠加 ClipPath:通过对画布裁剪的方式 RoundedBitmapDrawable: 系统API圆角类 前面三种是通过继承ImageView重写onDraw()方法实现 最后一种是系统API直接使用。 每一种方式都能实现显示圆形图片, 我们主要从以下几个方面来比较各个方...

bobo_zai的博客 9774

基于ESP32的气象雷达站设计与实现

物联网技术通过嵌入式设备实现环境数据的实时采集与可视化,其中ESP32凭借其双核处理器和WiFi/蓝牙功能成为热门选择。本项目利用ESP32结合LVGL图形库,构建了一个低成本气象监测系统,通过OpenWeatherMap API获取全球气象数据并在7英寸触摸屏上动态展示。系统采用三级优化策略处理高分辨率雷达图,包括服务端预处理、硬件加速解码和显示增强,有效解决了内存占用和帧率问题。在物联网设备开发中,类似方案可应用于智能家居、农业监测等场景,特别是需要实时数据可视化的领域。通过SPIFFS存储和zlib压

weixin_42524864的博客 422

MBIST --- PATR2.Memorybist 测试流程

mem bist作为现在design设计中不可或缺的DFT设计内容,越发重要。本章节主要介绍mem bist的flow,如何在tessent中实现mbist以及tessent中的一些命令和mode。

sinat_27691203的博客 6005

android 圆形头像,自定义圆形ImageView

中间的圆形的专辑图片。

2501_90194443的博客 392

ubuntu 安装node和npm

在ubuntu中经常需要用到node ,npm,因为npm基本会和node同时安装,所以只需要安装node即可。可以使用 nvm(Node Version Manager)来管理你的 Node.js 版本。

风吹落叶的博客 2291

android 自定义圆形imageView

头叙:有的时候,android原生的控件满足不了我们项目中的需求,所以我们会针对原生的控件在进行一次升华,也就是我们说的自定义控件。eg: 每一个项目中都有imageView,但是原生的imageView是一个矩形,但是我们爱头像上传的时候,有可能需要圆形的头像,我们只能自定义控件,1.自定义控件1.1 如果我们要自定义ImageView, 首先继承ImageView(具体代码,在下面会赘述,简单...

wk_先森的博客 1万+

Xilinx FPGA ICAP原语实现多重配置

众所周知,常见的FPGA通常为SRAM结构,固件程序一般存放在外置的串行Flash中,比如SPI Flash,M25P16或N25Q128等。 FPGA启动时,一般先从SPI起始地址开始加载数据到内部的SRAM,加载完成、校验通过则会直接运行。 那么有没有可能在SPI Flash中存放两个或多个FPGA固件呢?

whik1194的博客 4612

飞牛fnNAS存储模式RAID 5数据恢复

中介绍了fnNAS存储空间的几个模式,细心的网友应该能感受到,我是非常推崇RAID 5的。但我认为,一般人出现1块硬盘损坏后,就能够赶紧采取处理措施了,再高的容灾等级也无法满足这个用户的需求了。》就完成了飞牛NAS存储空间的说明,包括了如何创建、怎么选择空间模式、RAID 5 硬盘故障后的更换、系统更换/重装后数据盘的恢复等等。在VMware中新建虚拟机,安装好fnNAS后,再向虚拟机添加“已有硬盘”(这就是所谓崩溃虚拟机的数据盘),此时新的fnNAS出现提示。在“选择要添加的硬盘”中,选择刚添加硬盘。

dgnankai的专栏 3008

关于 android ImageView 圆角处理 圆图

关于 android ImageView 圆角处理 圆图 博客分类:  android   相关组件找到了4个 其一:http://stackoverflow.com/questions/16208365/create-circular-image-view-in-android Java代码   package cn.com.idre

liqingqq50的博客 621

【图像超分】论文复现:CVPR 2024 | 轻量化超分 | 窗口注意力改进 | CAMixerSR的Pytorch源码复现,跑通源码,获得指标和超分结果,计算复杂度,架构梳理拆解,逐行注释!

本文介绍了超分辨率重建方法CAMixerSR的代码实现与运行指南。文章亮点包括:完整跑通源码获取PSNR/SSIM指标和可视化结果;详细解析模型架构与关键代码注释,帮助快速复现基线模型。实验部分提供了测试配置文件和训练设置说明,支持2K/4K/8K大图像超分和x2/x4轻量化超分。环境依赖PyTorch和BasicSR框架,数据集包含DIV2K等常用基准。测试结果与论文指标一致,可视化输出保存至指定目录。训练配置可自定义数据集路径、GPU数量等参数。该实现突出了CAMixerSR在降低W-MSA复杂度方面的

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 438

android 动态圆,Android中 3D 圆形旋转动态实现

最近挺闲的。对于android的画图机制想了深入了解。发现java的2维画图机制其实也挺强大的。能做出很多我们很炫的效果。此篇文章就讲述了通过cavans 的api 实现三维效果的动态旋转图。先上效果图:android中自带的roate旋转使用的是平面旋转。这里我们想要实现立体的旋转圆形。此间我们需要的核心只是就是:1.画矩形的内切椭圆 2.动态改变矩形半径,并且连续画椭圆。达到圆形旋转的效果 3...

weixin_31960565的博客 617

Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(十九):微服务实战——Boot 4 + Spring Cloud 2026.x,构建高并发电商分布式系统

Component@Slf4j@Autowired// 白名单路径@Override// 白名单放行// 提取Token// 传递用户信息到下游服务.mutate().build();@Override// 最高优先级if (bearer!@Component技术点Boot 3 时代Boot 4 时代提升线程模型平台线程池(200线程上限)虚拟线程(百万级并发)50x+服务通信。

qq_17204557的博客 185

【天气雷达】双偏振产品-差分传播相移KDP详解

双偏振产品-差分传播相移KDP详解。

珞瑜的博客 2661

android RoundedBitmapDrawable最简单方式实现圆角

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

2401_84149570的博客 895

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android项目中遇到的坑之(Android圆角圆形图 二)

接着上一篇的问题来研究研究: **问题来了:效果是有了,但有发现么?我设置的scaleType只有fitxy 是有效果的,其他的都没有效果了。设置为其他的scaleType都变成matrix那种效果了,也就是图片默认从控件的左上角开始摆放。**我们先看看ImageView的scaleType 以下内容来自http://www.2cto.com/kf/201411/348601.html 让

vv_bug 3840

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android 加载图片资源,一个Android快速图片加载框架BaseImageLoader

作者AlexFugui,源码BaseImageLoader,这是一个Android快速图片加载框架BaseImageLoader。说明支持加载网络图片(String格式url)/本地资源(mipmap和drawable)/网络.9图片/gif加载/自定义样式(圆形/圆角/centerCrop)/dataBindingv1.1.0起支持读取zip中图片加载至任意View中,无需解压.更多使用方法和示...

weixin_36474001的博客 384

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

自定义View 应用于用户头像背景圆框

import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.PorterDuff; import android.graphics.PorterDuff

qq_28663905的博客 309

android-自定义ImageView-圆形图片绘制代码详解

andorid中圆形图片很早就有啦,今天算是搞了一把,自己写了出来,并且可以实际使用的代码。 先看效果图: 图片的原图是: 先看看xml的布局文件是怎么样的:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

nyyin@qq.com 4902

Glide加载圆形图片的处理

Glide在加载圆形的图片的时候,进入页面第一次只会显示占位图,再一次进去的时候才会重新显示正常的图片, 首先看一下自定义的imgview吧public class CircleImageView extends ImageView { private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP; private

淘气阿星的博客 785

自定义圆形图片CircleImageView

效果图具体代码实现自定义的ImageView:CircleImageView.javapackage com.plusub.rentlandapp.view;import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.dr

z_zhaojun的博客 2145

58.圆角图片

绘制流程:1.根据获取的属性值,判断显示模式,并设置圆形图片、外边框、内边框的半径值2.画边框3.画图片内容(1)获取原图(2)得到正方形图(3)得到缩放图(4)得到圆形图public class MyRoundImageView extends ImageView {private int defaultColor = 0xffffffff; private ShowType mShowT...

weixin_33857679的博客 77

Android自定义ImageView实现圆形图片

  Android自定义ImageView实现圆形图片 自定义ImageView实现圆形图片,主要是在onDraw()方法中实现绘制圆形图片,在onMeasure()中测量圆形的半径并设置View的宽高。效果如下图   代码如下   public class CircleImageView extends ImageView { //画笔 private Pai...

小周郎的博客 3663
上一篇: Android 默认隐藏键盘的自动弹出
下一篇: Android AlertDialog简单实现
Android_Mr_Zhao
博客等级 码龄8年 9粉丝 83原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值