自定义View 绘画,Sharder 瓦片模式

MOA网站结构分析 MOA网站地址:http://moa.cs.waikato.ac.nz/ 注:文章为作者科研分析所得,请注意版权问题,引用时请告知原作者或做说明。 摘要:本文对MOA(Massive Online Analysis)的官方网站内容及MOA项目代码结构进行分析。截至2014年9月20日,MOA的最新版本是Release 2014.04,需要Weka3.7以上版本的支持。文章根据网站的一级标题、二 阅读详情

自定义View

① 是什么 ?

    就是自己写的一个View,可通过绘制,继承,组合 三种方式

② 怎么用

    首先写一个类继承自View,继承父类的三个构造方法
    在mxl 文件中引入这个类

    <com.example.liyang.customview.CustomView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#528b1d"
    />

自定义View 画图 设,P*(色,心,粗),布色,图,p

自定义View 类中 继承 View // view : 透明的
重写 构造方法,我们首先要 构造方法中递归调用,在第一个构造方法中,调用第二个构造方法,
再在第二个构造方法中调用第三个构造方法 ,以便于在第三个 构造方法中初始化Paint

    准备工作 :

    让前两个构造函数调用 第三个 构造函数
    在第三个构造函数中初始化 画笔 Paint

    paint = new Paint();


    1在 onDraw(Canvas canvas)先将画布置色 ,不然之前色易有残余       
    canvas.drawColor(Color.White);

    2 paint 可以设置颜色,画笔粗细,样式(实心,空心)
     paint.setStrokeWidth(10);
     paint.setColor(Color.BLACK);   
    paint.setStyle(Paint.Style.STROKE);// 或者 FILL 实心

    3.我们可以 利用 画笔 和 画布 去 进行绘画 (圆形,矩形,椭圆形..)

    canvas.drawPoint(100,100,paint);

    canvas.drawLine(200,200,400,400,paint);

    canvas.drawRect(300,300,600,700,paint);

    canvas.drawCircle(500,500,300,paint);

    canvas.drawArc(new RectF(200,500,600,900),0,90,true,paint);


    绘制多边形:三角形,正五星..
    绘制 多边形, 在绘制多边
    ① 构建Path 对象利用它的服务
    ② 利用 path moveTo() ; 与 lineTo() 方法进行绘制 
    ③ canvas.drawPath(path,paint);  // 画一下即可


    当然我们还可以使用 弧形去连接 两个点 
    path.arcTo(new RectF(100,100,200,200),0,90,true)


    最后我们还可以 画文字
    paint.setTextSize();
    canvas.drawText("",100,,100,paint);

    我们还可以得到 画笔 所划线的 顶部底部等,我们可以通过 
    Paint.FontMetrics metrics = paint.getFontMetrics(); 的属性进行
    文字的书写

    top bottom 基准线 leading 以基准线 为 y值坐标 写的这个文字 
    bttom 其实就是一个偏移量 

    实现文字恰好位于杠上:
    canvas.drawColor(Color.WHITE);
    Paint.FontMetrics metrics = paint.getFontMetrics();
    paint.setStyle(Paint.Style.STROKE);
    canvas.drawRect(100,100,1000,300,paint);
    paint.setTextSize(50);
    canvas.drawText("测试下对齐了吗",100,100-metrics.bottom,paint);




    常用字体属性

载图,set pro post rst

载入图片

注意载入图片属于耗时操作 不能写在 onDraw()方法里

        BitmapFactory.deodeResource(context.getResource(),R.mipmap...);
        canvas.drawBitmap(bitmap,100,100,paint);

设置矩阵
Matric matrix = new Matrix(); // 12 种属性

![这里写图片描述](https://img-blog.youkuaiyun.com/20160328190509989)

通常我们画出来的圆 周边带有 锯齿 ,我们可以开启 抗锯齿,让他们模糊

        paint.setAntiAlias(true);

线性渐变 三种模式渐变 cmr

    LinearGradient linearGradient = new LinearGradient(100, 100, 500, 100, Color.RED, Color.BLUE, Shader.TileMode.CLAMP);

    paint.setShader(linearGradient);

sharder 瓦片模式

彩虹的多彩变化
彩虹色的属性是设置给 画笔的
paint.setSharder(线性,扇形(不存在某个点不在瓦片范围之内),环形(圆))

头像圆形 用sharder 来做 画布移动 与矩阵恢复

有两种 瓦片模式 ,水平 和 垂直 方向上 都有可能超过 图片的范围

        SweepGradient sweepGradient = new SweepGradient(getWidth() / 2, getHeight() / 2,
            new int[]{0xffff0000,0xffff8800,0xffffff00,0xff00ff00,0xff00ffff,0xff0000ff,0xffff00ff},
            new float[]{0,1.0f/6,2.0f/6,3.0f/6,4.0f/6,5.0f/6,1});

    paint.setShader(sweepGradient);

    BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
    paint.setShader(bitmapShader);
    int cir = bitmap.getWidth() / 2;

    canvas.save();
    //移动我们的画布 达到 头像移动的目的 那要是 多个头像呢
    canvas.translate(500-cir,500-cir);

    paint.setAntiAlias(true);
    canvas.drawCircle(cir,cir,cir,paint);

    //恢复上一次矩阵
    canvas.restore();
    canvas.drawCircle(cir,cir,cir,paint);
sharder:用于分片操作的一致哈希算法实现 分片操作的一致哈希算法实现 立即下载

相关推荐

408——计算机组成原理(持续更新)

小数点前的0代表正数,1代表负数。

qq_55202378的博客 1722

让github仓库成为你的网站服务器

学习html5时,同学们很需要有个服务器能部署上自己的网站, 有一个比较巧妙的方法是,在github上创建一个仓库,上传你的html、css 、js等文件。访问仓库地址就可以看到网页了。 具体操作方法看下这个视频吧 Git GitHub GitLab使用教程_哔哩哔哩_bilibiliGit是目前世界上最优秀的版本控制系统,用以有效、高速的处理从小到大的项目版本管理。在他的基础之上,衍生出GitHub和GitLab这两个当前最流行的代码托管平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云

caohongxing的博客 2460

Arm Neoverse CMN-700 SLC内存系统与缓存分区技术解析

现代处理器架构中,缓存一致性协议与内存子系统设计直接影响系统性能。Arm Neoverse CMN-700采用的SLC(System Level Cache)通过16-way组相联设计实现高效数据缓存,其物理地址索引机制支持灵活的way分区配置。在软件可配置内存(OCM)模式下,SLC可作为独立内存空间使用,通过寄存器控制实现模式切换与区域锁定。缓存分区技术则通过请求源分类和way-based分配策略,满足实时性任务与吞吐量场景的不同需求。这些技术在5G基站、边缘计算等低延迟场景中具有重要应用价值,特别是C

weixin_30263073的博客 616

哔哩哔哩“红杏出墙”

B站自陈睿掌舵以来,一直在朝着“中国的YouTube”方向发展,主打中国最大的年轻人聚集地。越来越主流化的B站看似与建站之初的二次元文化聚集地相距甚远,很多用户埋怨B站变味儿,转向A站(ACfun)一类的视频网站。 老用户出离B站不是件新鲜事,可以说由来已久,毕竟B站就是A站用户出走建立的。在2014年2015年B站版权正规化,日剧韩剧搬运视频减少,追剧用户转向第一弹、韩剧TV平台。 2017年左右有军事类UP主抱怨B站审核严格,转向微博。2020年4月份的混剪比赛让诸多讨厌...

weixin_43819199的博客 2万+

comsol 多物理场仿真流程-以开关柜为例

1、主要方法 在SolidWorks中对于开关柜的内部与外部结构进行建模,生成能够导入软件计算的3D模型。将SolidWorks中的模型导入comsol软件中,设置参数进行多物理场耦合仿真。 1、具体步骤 删除高压开关柜中对其内部电磁环境无较大影响的结构,如低压测量柜、断路器内部结构等。 导入模型:将厂家提供的3D模型转化为solidworks结构模型。 修复模型:修复已转化模型中转化错误的部分、修复已转化模型中非实体部分、修复已转化模型中重叠实体部分 化简模型:去除过于...

健忘16的博客 7020

基于STM32的简易电压、频率、占空比测量仪

任务详解:我们需要实现三个功能: 第一个是测频率的功能,输入信号为频率为1kHz~10kHz的三种波形(方波、三角波、正弦波),这也是我们最常见的三种波形。幅度是不需要测量的,所以先不关心幅度。 第二个是电压报警功能,当输入信号的幅度超过15V时,我们需要报警(这里我用了一个红色LED当报警器,有条件的还可以加个蜂鸣器)并且把此时的信号幅度显示在OLED屏幕上。 第三个是通信方式的要求,需要有串口通信功能。 第四个是计算占空比的任务,这个任务的输入是幅度为1V~10V、频率为20Hz ~1kHz的方波,需要

weixin_43469377的博客 7251

极简无复杂数学公式机器学习入门以线性模型(Linear)为例

接下来,把问题稍微变换一下,现在知道乘客每次乘坐出租车的公里数,也知道乘客每次下车的时候支付给出租车司机的总费用。迭代 10000 次后的误差为 [1.1453724e-05]迭代 12000 次后的误差为 [6.6502554e-07]迭代 13000 次后的误差为 [1.5586754e-07]迭代 14000 次后的误差为 [1.5586754e-07]迭代 11000 次后的误差为 [2.653441e-06]迭代 9000 次后的误差为 [5.112471e-05]

写代码炒股的算命先生 1284

2024最新超详细无痛安装PyTorch,包括下载地址、环境配置与各种避坑指南

PyTorch更新很快,2024最新下载安装经验贴,包括anaconda+CUDA+cuDNN+PyTorch四部分的下载和安装。文章详细介绍了下载地址、环境配置、虚拟环境建立的问题,还温馨提示了各种闭坑指南。有需要的友友快过来康康!

qq_43596278的博客 11万+

视频教程-软件测试2小时入门-软件测试

软件测试2小时入门 课程讲师有中科院硕士学位,从事软件测试十余年,有丰富的测...

weixin_31412939的博客 5328

osgEarth加载大疆数据

【代码】osgEarth加载大疆数据。

weixin_44769745的博客 308

【Android调试】高通adb识别不到设备的完整排查指南:从驱动到端口一步到位

本文系统梳理高通(Qualcomm)平台Android设备adb无法识别的完整排查流程。从最基础的USB连接检查开始,到Windows设备管理器中驱动状态的判断、高通USB驱动的正确安装与更新方法,再到adb端口被占用、USB调试未开启、驱动签名校验失败等高频场景的解决方案。每一步均配截图和操作命令,文末附常见报错速查表,适合做系统开发、刷机调试或者Android Framework bringup时遇到adb不通的工程师快速定位。

weixin_44081096的博客 281

jmeter 中 Content-Type为multipart/form-data的接口的测试

这几天已经有多位同学在测试Content-Type为multipart/form-data的接口时遇到了问题 总的来时,此种类型的接口要在http请求中勾选"use multipart/form-data for POST" ,并且不要在http header manager中添加参数content-Type,值为multipart/form-data。 1.问题描述 以下是P2P金融平台的实名认证接口的接口说明(接口规范下载链接:https://pan.baidu.com/s/1gajlQSYRJ.

caohongxing的博客 3522

【论文精读】Graph WaveNet-深度时空图模型

Graph WaveNet构建了一个自适应邻接矩阵,它能保留隐藏的空间依赖关系,能够自动从数据中发现未见的图结构。提出了一个有效且高效的框架,可同时捕捉空间和时间依赖关系。其核心思想是将其提出的图卷积与扩张因果卷积相结合,使每个图卷积层都能处理空间依赖关系。在交通数据集上评估了提出的模型,并以较低的计算成本获得了最先进的结果。

打酱油的葫芦娃 1007

图片素材网站推荐

写博客或者公众号很多人都会配图,不仅丰富了文章,也使读者读起来更轻松愉悦。以下是我用过的搜索图片资源比较好的网站。

杏子 1710

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

可供软件测试练习的在线网站、被测系统——整理中

1.P2P金融平台 p2p金融平台:该平台功能全面。文档(操作手册、接口文档等)较为丰富 前台地址:http://user-p2p-test.itheima.net 前台账号可以自行注册。 后台地址:http://admin-p2p-test.itheima.net 后台账号密码:admin/12345678 2.SWAGLABS 一个小型的在线的购物网站Swag Labs 3. 可供练习的在线测试网站 17个练习自............

caohongxing的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

用HTML5打造本地桌面应用​

用HTML5打造本地桌面应用2014年5月21日歪脖骇客 3条评论11HTML5让Web开发人员用纯HTML技术开发富客户端互联网应用或者甚至本地桌面应用成为了可能。HTML5可以将任何普通网站转变成Web应用。HTML5 web 应用不仅具有在桌面浏览器应用中的优势,同时在智能手机和平板中也是开发利器。在手机端,有一个非常棒的工具叫做PhoneGap,使用这个快速开发平台...

weixin_33804990的博客 1353

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

杏子语录(二)

甩掉自己的玻璃尊严,维护他人的玻璃尊严 这世间的每个人都有些东西埋藏在心底深处,或用面纱遮蔽,或修葺一堵厚厚的城墙,不愿被人触碰。但是总会有人一不小心就揭开了那面纱,踢开了那堵墙。将你的“不愿意”暴露在日光之下。这时候就会出现名叫尊严的勇士出来捍卫自己。尊严的定义随着时代的变迁也慢慢有所演变,世人所说的“玻璃心”就是一种“玻璃尊严”。我们应该勇敢地甩掉自己的玻璃尊严。站在同理心的角度,我们也应该积...

hello250sunshine的博客 604

视频教程-Spring Security3系列-Java

Spring Security3系列 课程讲师有中科院硕士学位,从事软件测试...

weixin_34416941的博客 405

OpenLayers介绍

OpenLayers是一个用于开发WebGIS客户端的JavaScript包 [转载]OpenLayers项目分析——(一)项目介绍{感谢原作者为大家的贡献!} (OpenLayersJavaScriptMappingLibrary) 网址:http://www.openlayers.org/   OpenLayers是由MetaCarta公司开发的,用于WebGIS客户端的 Jav...

weixin_30613727的博客 320

19个免费的ppt制作网站

免费ppt制作网站

HH112586的博客 1228万+

ubuntu 下安装eclipse

1. 安装JDK   ubuntu 11.04系统自带的Java环境是openjdk,最好使用sunjdk(具体原因不明,网上教程基本都是这样的),因此先去官方网站( http://www.oracle.com/technetwork/java/javase/downloads/index.html)下载“ Java SE 6 Update 26 ”的JDK安装包: Linux x86 - Se...

叶知秋 201

[转载]Access to the path '' is denied.解决方案

原文地址:Accesstothepath''isdenied.解决方案作者:趴着墙等红杏 ccess to the path '路径' is denied.我在网上找了很多资料,最后终于解决了,原来是因为在该文件的上级文件夹没有修改权限,也就是说,那个user用户没有修改的权限 问题如下:在windows 2003下安装了VS2003,在运行web应用程序的时候出现一下错误:对路径...

weixin_30596023的博客 884

开发常用镜像资源替换为国内开源镜像(yum,compose,maven,docker,android sdk,npm,国内开源镜像汇总)...

一、国内开源镜像站点汇总 阿里云开源镜像站 (http://mirrors.aliyun.com/)网易开源镜像站 (http://mirrors.163.com/)中国科学技术大学开源镜像站 (http://mirrors.ustc.edu.cn/)清华大学开源软件镜像站 (https://mirrors.tuna.tsinghua.edu.cn/)中国电信天翼云 (http://mirror...

weixin_34090643的博客 1090

诗词经典唯美名句赏析

四月维夏,六月徂暑。——《诗经·小雅·四月》~~网上还有哪些相关的句子呢?知您所需,以下是小编整理的“诗词经典唯美名句赏析”,供您参考,希望能帮助到大家。

m0_72814956的博客 1468

js Map介绍

文章分类:Web前端 /* * Map对象,实现Map功能 * * * size() 获取Map元素个数 * isEmpty() 判断Map是否为空 * clear() 删除Map所有元素 * put(key, value) 向Map中增加元素(key, value)  * remove(key) 删除指定key的元素,成功返回true,失败返回false * get(key) 获取指定key的...

叶知秋 403

iOS与开源:一枝红杏出墙来(转载)

2014-12-26 09:37 编辑: pockry 分类:业界动态 来源:CocoaChina 0 1746 iOS开发CocoaPods开源 招聘信息: 急招移动开发工程师(iOS,Android) IOS软件工程师快到碗里来导读:对一般人而言,苹果和其构筑的iOS帝国,给人的印象是一个围墙花园(Wall Garden),如果你不在其中,就无法领略里面的胜景。对于开发者而言也同样是这

sindyIntel的专栏 1569
上一篇: Android 百度地图引入使用简介
下一篇: 自定义View+Handle 实现模拟时钟效果
一朵红杏
博客等级 码龄12年 51粉丝 282原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值