当前位置: 首页 > article >正文

Android着色器SweepGradient渐变圆环,Kotlin

Android着色器SweepGradient渐变圆环,Kotlin

 

import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.graphics.Path
import android.graphics.SweepGradient
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView


class MyView : AppCompatImageView {
    private var mPaint: Paint? = null
    private var mPath: Path? = null
    private var mSweepGradient: SweepGradient? = null

    constructor(ctx: Context, attributeSet: AttributeSet) : super(ctx, attributeSet) {
        val W = resources.displayMetrics.widthPixels
        val H = resources.displayMetrics.heightPixels

        mPaint = Paint(Paint.ANTI_ALIAS_FLAG or Paint.FILTER_BITMAP_FLAG)
        mPaint?.style = Paint.Style.STROKE
        mPaint?.strokeWidth = 60f

        mPath = Path()
        mPath?.addCircle(W / 2f, H / 2f, W / 3f, Path.Direction.CW)
        mSweepGradient =
            SweepGradient(W / 2f, H / 2f, intArrayOf(Color.TRANSPARENT, Color.RED, Color.BLUE, Color.YELLOW, Color.TRANSPARENT), null)
        mPaint?.setShader(mSweepGradient)
    }

    override fun onDraw(canvas: Canvas) {
        canvas.drawPath(mPath!!, mPaint!!)
    }
}

 

 

5316b7fde7d7494480c228a496c1e235.png

 

 

 

 

Android渲染器Shader:梯度渐变扫描渲染器SweepGradient(二)-CSDN博客文章浏览阅读4.5k次。Android渲染器Shader:梯度渐变扫描渲染器SweepGradient(二)附录文章1介绍了线性渐变渲染器。Android的SweepGradient梯度渐变扫描,重点是在构造SweepGradient的中心点选择。我写一个例子。package zhangphil.demo;import android.content.Context;import android_sweepgradienthttps://blog.csdn.net/zhangphil/article/details/52021677

 


http://www.kler.cn/a/456112.html

相关文章:

  • 【Rust自学】7.4. use关键字 Pt.2 :重导入与换国内镜像源教程
  • Pandas03
  • 【最新】沃德协会管理系统源码+uniapp前端+环境教程
  • 测试冰淇淋模型
  • docker-开源nocodb,使用已有数据库
  • 微软 CEO 萨提亚・纳德拉:回顾过去十年,展望 AI 时代的战略布局
  • 【C++ 真题】P5733 【深基6.例1】自动修正
  • 渗透测试面试问题
  • 【字符串】——python反转字符串的7种方法
  • this:[object Object](查看this对象)
  • 永磁同步电机控制算法-转速环电流环ADRC控制器
  • 单片机实物成品-007 汽车防盗系统(代码+硬件+论文)
  • 企业安全建设——安全防线框架建设(一)
  • 数据序列化与反序列化的实际应用示例
  • 条款19 对共享资源使用std::shared_ptr
  • 【论文复现】基于改进海洋捕食者算法的光伏模型参数估计
  • 攻防世界web新手第五题supersqli
  • Bash Shell知识合集
  • Qt6 QML RegularExpressionValidator 输入中文的坑
  • VSCode 插件开发实战(十五):如何支持多语言
  • shell编程7
  • Ubuntu通过mDNS实现局域网local域名和octoprint域名访问
  • 巧用mask属性创建一个纯CSS图标库
  • ‘pnpm’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  • 如何在嵌入式系统或计算机系统中验证boot程序
  • CountDownLatch