Android基于Path的addRoundRect,Canvas剪切clipPath简洁的圆形图实现,Kotlin(2)

Android基于Path的addRoundRect,Canvas剪切clipPath简洁的圆形图实现,Kotlin(2)

import android.content.Context
import android.graphics.BitmapFactory
import android.graphics.Canvas
import android.graphics.Path
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageViewclass MyView : AppCompatImageView {private var mRadius = 0f //半径private val mPath = Path()constructor(ctx: Context, attributeSet: AttributeSet) : super(ctx, attributeSet) {val mBmpSrc = BitmapFactory.decodeResource(resources, R.mipmap.pic, null)setImageBitmap(mBmpSrc)}override fun onDraw(canvas: Canvas) {canvas.save()val w = measuredWidth.toFloat()val h = measuredHeight.toFloat()val mini = Math.min(w, h)mRadius = mini / 2fval left = (w - mini) / 2fval top = (h - mini) / 2fval right = (w + mini) / 2fval bottom = (h + mini) / 2fmPath.addRoundRect(left, top, right, bottom, mRadius, mRadius, Path.Direction.CW)canvas.clipPath(mPath)super.onDraw(canvas)canvas.restore()}
}

Android基于Path的addRoundRect,Canvas剪切clipPath简洁的圆角矩形实现,Kotlin(1)-CSDN博客文章浏览阅读850次,点赞12次,收藏8次。Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案RoundedBitmapDrawable是Android在support v4的扩展包中新增的实现圆角图形的关键类,借助RoundedBitmapDrawable的帮助,可以轻松的以Android标准方式实现圆角图形图象。头像有标准的四方形,也有圆形(如QQ)。Android水平渐变色圆角矩形一个Android水平渐变色圆角矩形,如图:其实实现很简单,主要感觉颜色渐变,圆角弧度比较漂亮,故记录下来。https://blog.csdn.net/zhangphil/article/details/144586015

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/890627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中化信息与枫清科技深化合作:共探“AI+”产业新生态

随着数字化转型的浪潮席卷全球,数据已成为推动创新和经济增长的关键力量。为持续深化数据要素价值挖掘与应用实践,推动打造行业交流平台,驱动产业创新共荣,2024 年 12 月 18 日 -19 日,由中国通信标准化协会主办的“20…

Flink Data Source详解

注意在高版本中SourceFunction以及其子类RichSourceFunction、ParallelSourceFunction等已经被标记为废弃,所以我们要看数据源的实现只需要关注Source接口(org.apache.flink.api.connector.source.Source)。了解Source背后的架构和运行原理有助于我们更好的使用Source,或者…

Matrix-Breakout 2 Morpheus

第一步 信息收集 (1)寻找靶场真实ip arp-scan -l 靶场真实 ip 为192.168.152.154 (2)探测端口及服务 nmap -p- -sV 192.168.52.135 第二步 开始渗透 (1)访问web服务 http://192.168.152.154and http://192.168.52.135:81 发现 81 端口的页面要登录 我们使用 dirb 扫描…

我的AI工具箱Tauri版-ZoomImageSUPIR图像超细节缩放

本教程基于自研的AI工具箱Tauri版进行ZoomImageSUPIR图像超细节缩放。 ZoomImageSUPIR图像超细节缩放 是一款专为图像处理优化的工具,支持图像的高精度放大与缩小操作,满足多场景需求。通过集成 SUPIR(Super-resolution Image Processing wi…

软件工程-【软件项目管理】--期末复习题汇总

一、单项选择题 (1)赶工一个任务时,你应该关注( C ) A. 尽可能多的任务 B. 非关键任务 C. 加速执行关键路径上的任务 D. 通过成本最低化加速执行任务 (2)下列哪个不是项目管理计划的一部分&…

一些基础面试题

重写和重载的区别: 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二…

访问ipv6的坑

如何访问ipv6站点 本机ipv6回环地址: http://[0:0:0:0:0:0:0:1]:8080/index.html 类似ipv4的127.0.0.1 查看本机的ipv6地址 使用ipconfig命令查看 ac900::27bf:9999:6950:dfa7%15需要去掉%符号后面的内容 ac900::27bf:9999:6950:dfa http://[ac900::27bf:9999:6950:dfa]:80…

Java对象的内存分布(一)

一、概览 在Hotspot虚拟机中,java对象在内存中分布如下图所示: --------------------------------------------- | 对象头 | 实例数据 | 对齐填充 | --------------------------------------------- 对象大小 对象头 实例数据 [填…

docker部署微信小程序自动构建发布和更新

通过 Jenkins 和 Docker 部署微信小程序,并实现自动构建、发布和版本更新,主要涉及以下几个步骤: 设置 Jenkins 环境配置 GitLab 与 Jenkins 的集成构建 Docker 镜像部署和发布微信小程序配置 Jenkins 自动构建 以下是详细的步骤说明&#…

RY2200 One Cell Li-ion and Li-poly Battery Protection IC

1、Features Protection ofCharger Reverse Connection 50mΩ Low RssoN) Internal Power MOSFET Protection of Battery Cell Reverse Connection Delay Times are generated inside Over-temperature Protection …

鼎盛合|高转速无刷风扇方案设计开发

在现代科技飞速发展的时代,人们对于电器设备的性能要求越来越高。风扇作为一种常见的电器,在日常生活和工业生产中都有着广泛的应用。而高转速无刷风扇以其高效、低噪、长寿命等优点,逐渐成为了市场的宠儿。本文将详细探讨高转速无刷风扇的方…

H3C MPLS跨域optionB

实验拓扑 实验需求 如图,VPN1 和 VPN2 分别通过运营商 MPLS VPN 连接各自分支机构按照图示配置 IP 地址,VPN1 和 VPN2 连接同一个 PE 设备的私网 IP 网段存在地址复用,使用多 VRF 技术来防止 IP 冲突AS 100 和 AS 200 内部的公共网络中各自运行 OSPF 使 AS 内各设备的 Loo…

harmony动画属性

属性动画 显式动画 转场动画

【day16】Java开发常用API

模块15回顾 在深入探讨模块16之前,让我们回顾一下【day15】中的重点内容: String类: 构造方法:String(), String(String s), String(char[] chars), String(byte[] bytes), String(char[] chars, int offset, int count), String…

申请腾讯混元的API Key并且使用LobeChat调用混元AI

申请腾讯混元的API Key并且使用LobeChat调用混元AI 之前星哥写了一篇文章《手把手教拥有你自己的大模型ChatGPT和Gemini等应用-开源lobe-chat》搭建的开源项目,今天这篇文章教大家如何添加腾讯云的混元模型,并且使用LobeChat调用腾讯混元AI。 申请腾讯混…

es 中使用update 、create 、index的区别

文章目录 1. index 操作示例:index 操作Bulk 示例中的 index 操作: 2. create 操作示例:create 操作Bulk 示例中的 create 操作: 3. update 操作示例:update 操作Bulk 示例中的 update 操作: 4. 区别总结总…

3D几何建模引擎Parasolid功能解析

一、什么是Parasolid? Parasolid是由Siemens PLM Software开发的高精度精密几何建模引擎。它全面评估CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAE(计算机辅助工程)、PLM(产品生…

【深度学习-调参】Batch 大小与类别数到底有没有潜在的关系?

文章目录 深度学习中的 Batch 概念为什么关注批次内的类别分布?合理的类别分布策略1. 保持与整体数据集的类别比例一致2. 固定每个类别的采样数量3. 动态采样(自适应采样)不同场景下的选择Batch 大小与类别数之间的关系结语使用 PyTorch 的 `WeightedRandomSampler` 来平衡批…

QT开发【常用控件1】-Layouts Spacers

在 Qt 中,布局(Layouts)和间距(Spacers)是创建用户界面的关键组成部分。它们帮助开发者在窗口或对话框中组织和排列控件,以实现灵活和美观的界面设计。 1. 布局(Layouts) 布局是 Q…

flink sink doris

接上文&#xff1a;一文说清flink从编码到部署上线 网上关于flink sink drois的例子较多&#xff0c;大部分不太全面&#xff0c;故本文详细说明&#xff0c;且提供完整代码。 flink doris版本对照表 1.添加依赖 <!--doris cdc--><!-- 参考&#xff1a;"https…