Android Xfermode 使用解析

这篇具有很好参考价值的文章主要介绍了Android Xfermode 使用解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自定义绘制之图片

canvar.drawBitmap() ,BitMapFactory

  private fun getBitmap(width: Int): Bitmap? {
        val option = BitmapFactory.Options()
        option.inJustDecodeBounds = true
        BitmapFactory.decodeResource(resources, R.mipmap.android111,option)
        option.inJustDecodeBounds = false
        option.inDensity = option.outWidth
        option.inTargetDensity  = width
        return BitmapFactory.decodeResource(resources,R.mipmap.android111,option)
    }

加载本地图片优化版

inJustDecodeBounds  读取上下左右以及大小 等 信息

drawBitmap(bitmap,left,top,paint)

drawOval(left,top,right,bottom) 画椭圆

paint.setXfremode() // 现在只剩一种 PorterDuffXfermode

val count = canvar.saveLayer(bounds,paint) 挖空的区域 返回ocunt

bounds = RectF() 

cavar.restoreToCouint 还原位置 

tips:使用完成后 最好恢复一下

paint.xfermode = null
canvas.restoreToCount(count)

Android Xfermode 使用解析,android

Android Xfermode 使用解析,android

Android Xfermode 使用解析,android

 

 

算法

Android Xfermode 使用解析,android 

 

canvar.drawOval(left,top,right,bottom,paint) 绘制圆形 椭圆

canvar.drawRect(left,top,right,bottom,paint) 绘制方形

Mode: SRC_IN,SRC,SRC_OVAL等,绘制时会根据范围进行判断进行绘制,可能出现与Mode方式不同的结果,透明区域也要计算文章来源地址https://www.toymoban.com/news/detail-674695.html

到了这里,关于Android Xfermode 使用解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android MQTT连接阿里云使用Json解析数据

    这里有两种方法: 这里先介绍第一种方法: 切换到Android 目录: 按照如下图,添加依赖即可: 第二种方法: 打开Android Studio 然后切换到Android 目录找到Lib文件夹,将MQTT的JAR包复制进去即可。 然后点击project目录然后将MQTT JAR包导进去 添加完成之后作为库导入工程中 在MainA

    2024年02月03日
    浏览(44)
  • Android中使用WebView与JS交互全解析

    首先,需要提出一个概念,那就是hybrid,主要意思就是native原生Android和h5混合开发。为什么要这样做呢?大家可以想象一下针对于同一个活动,如果使用纯native的开发方式,Android和iOS两边都要维护同一套界面甚至是逻辑,这样开发和维护的成本会很大,而使用hybrid的开发方式

    2024年04月09日
    浏览(79)
  • Android13 adb input 调试命令使用和源码解析

    目录 一、概述 二、常用命令 2.1 输入文本 2.2 模拟按键 2.3 模拟点击 2.4 模拟滑动 2.5 模拟长按 2.6 模拟滚动 三、进阶用法 3.1 组合按键的用法 3.2 长按power键 3.3 输入中文 3.4 代码模拟发送按键 1. 方法1: 2. 方法2: 3. 方法3: 四、注意事项 五、源码解析 六、总结 好了 本篇作为And

    2024年01月20日
    浏览(62)
  • Flutter-TabBar的使用说明,吃透这份Android高级工程师面试497题解析

    TabBar在使用之前,首先需要熟悉他的定义属性,现在查看常用定义属性: const TabBar({ Key key, @required this.tabs,//必须实现的,设置需要展示的tabs,最少需要两个 this.controller, this.isScrollable = false,//是否需要滚动,true为需要 this.indicatorColor,//选中下划线的颜色 this.indicatorWeight = 2.

    2024年04月26日
    浏览(48)
  • 【Android R】车载 Android 核心服务 - CarService 解析

    在之前的文章从应用工程师的角度再谈车载 Android 系统中提到了\\\" CarService 是车载Android系统的核心服务之一,所有应用都需要通过 CarService 来查询、控制整车的状态\\\",不仅仅是车辆控制,实际上 CarService 几乎就是整个车载Framework最核心的组件,这也让 CarService 成了各种bug的重

    2023年04月19日
    浏览(50)
  • Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)

    运行有问题或需要源码请点赞关注收藏后评论区留言~~~ SQLite是一种小巧的嵌入式数据库,使用方便,开发简单,如同mysql,oracle那样,SQLite也采用SQL语句管理数据,由于它属于轻型数据库,不涉及复杂的数据控制操作,因此App开发只用到数据定义和数据操纵两类SQL。 1:数据

    2024年02月03日
    浏览(86)
  • Android Retrofit 源码解析

    在 Android 开发中,Retrofit 是一个非常流行的网络请求库。它是由 Square 开发的,用于 简化 Android 应用程序与网络服务器之间的通信 。 Retrofit 主要用于处理 RESTful API 的网络请求。它通过将 HTTP 请求与 Java 接口方法进行映射,使得网络请求的编写变得简单和直观。使用 Retrofit,

    2024年02月13日
    浏览(38)
  • Android日志获取与解析

    Android developers🔗 设备 1、启用开发者选项(连续点击设备版本号 2、点击bug报告(不同系统稍有差异 3、选择所需bug报告类型,点击报告 4、通知栏会有完成提示,点击可分享 5、文件管理中可找到报告文件 模拟器 “Extended controls”窗口中的 File a bug 功能: 1、点击模拟器面板

    2024年02月03日
    浏览(36)
  • Android OKHttp源码解析

    Https是Http协议加上下一层的SSL/TSL协议组成的,TSL是SSL的后继版本,差别很小,可以理解为一个东西。进行Https连接时,会先进行TSL的握手,完成证书认证操作,产生对称加密的公钥、加密套件等参数。之后就可以使用这个公钥进行对称加密了。 Https的加密方式同时使用了非对

    2023年04月10日
    浏览(35)
  • Android MediaCodec解析

    MediaCodec是Android平台提供的一个底层的音视频编解码框架,它是安卓底层多媒体基础框架的重要组成部分。它经常和 MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface, AudioTrack 一起使用。 解码 的作用,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包