Android结构layout的draw轻便clipPath实现圆角矩形结构,Kotlin

[复制链接]
发表于 2025-11-15 01:55:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Android结构layout的draw轻便clipPath实现圆角矩形结构,Kotlin

 
通常,如果要把一个相对结构,FrameLayout,大概线性结构等如许的结构变成具有圆角大概圆形的结构,须要增长一个style,给它设置圆角,现在通过上层动态Kotlin代码重写draw方法,很简朴实现圆角矩形的恣意结构:
 
  1. import android.content.Context
  2. import android.graphics.Canvas
  3. import android.graphics.Path
  4. import android.util.AttributeSet
  5. import android.widget.RelativeLayout
  6. class MyLayout : RelativeLayout {
  7.     private var mRadius = 100f //半径
  8.     private val mPath = Path()
  9.     constructor(ctx: Context, attributeSet: AttributeSet) : super(ctx, attributeSet) {
  10.     }
  11.     //onDraw里面并不能简单实现,换用draw就很容易实现。
  12.     override fun draw(canvas: Canvas) {
  13.         canvas.save()
  14.         mPath.addRoundRect(0f, 0f, measuredWidth.toFloat(), measuredHeight.toFloat(), mRadius, mRadius, Path.Direction.CW)
  15.         canvas.clipPath(mPath)
  16.         super.draw(canvas)
  17.         canvas.restore()
  18.     }
  19. }
复制代码
xml直接使用:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <com.myapp.MyLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     xmlns:tools="http://schemas.android.com/tools"
  4.     android:layout_width="match_parent"
  5.     android:layout_height="wrap_content"
  6.     android:background="@android:color/holo_red_dark"
  7.     tools:context=".MainActivity">
  8.     <ImageView
  9.         android:layout_width="match_parent"
  10.         android:layout_height="wrap_content"
  11.         android:scaleType="centerCrop"
  12.         android:src="@mipmap/pic" />
  13. </com.myapp.MyLayout>
复制代码
终极:

 
 
 
 
Android基于Path的addRoundRect,Canvas剪切clipPath轻便的圆形图实现,Kotlin(2)-CSDN博客文章欣赏阅读449次,点赞5次,收藏3次。Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案RoundedBitmapDrawable是Android在support v4的扩展包中新增的实现圆角图形的关键类,借助RoundedBitmapDrawable的资助,可以轻松的以Android标准方式实现圆角图形图象。头像有标准的四方形,也有圆形(如QQ)。Android程度渐变色圆角矩形一个Android程度渐变色圆角矩形,如图:实在实现很简朴,紧张感觉颜色渐变,圆角弧度比力漂亮,故记载下来。
https://blog.csdn.net/zhangphil/article/details/144586951Android基于Path的addRoundRect,Canvas剪切clipPath轻便圆形图用Matrix实现旋转角度,Kotlin(3)-CSDN博客文章欣赏阅读30次。Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案RoundedBitmapDrawable是Android在support v4的扩展包中新增的实现圆角图形的关键类,借助RoundedBitmapDrawable的资助,可以轻松的以Android标准方式实现圆角图形图象。Android程度渐变色圆角矩形一个Android程度渐变色圆角矩形,如图:实在实现很简朴,紧张感觉颜色渐变,圆角弧度比力漂亮,故记载下来。
https://blog.csdn.net/zhangphil/article/details/144588050
Android基于Path的addRoundRect,Canvas剪切clipPath轻便的圆角矩形实现,Kotlin(1)-CSDN博客文章欣赏阅读615次,点赞8次,收藏4次。Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案RoundedBitmapDrawable是Android在support v4的扩展包中新增的实现圆角图形的关键类,借助RoundedBitmapDrawable的资助,可以轻松的以Android标准方式实现圆角图形图象。头像有标准的四方形,也有圆形(如QQ)。Android程度渐变色圆角矩形一个Android程度渐变色圆角矩形,如图:实在实现很简朴,紧张感觉颜色渐变,圆角弧度比力漂亮,故记载下来。
https://blog.csdn.net/zhangphil/article/details/144586015
 
 
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表