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

不错的网站开发公司网站建设报价兴田德润

不错的网站开发公司,网站建设报价兴田德润,重庆可作为推广的网站,wordpress 搜索无效绘制的基本要素: onDraw(Canvas):是用来重写的 Canvas:实际执行绘制的 Paint:调整粗细和颜色等 坐标系:以屏幕左上角为原点,向右、向下为正向数值的坐标系 尺寸单位:在绘制过程中所有的尺寸单位都是px…

绘制的基本要素:

onDraw(Canvas):是用来重写的

Canvas:实际执行绘制的

Paint:调整粗细和颜色等

坐标系:以屏幕左上角为原点,向右、向下为正向数值的坐标系

尺寸单位:在绘制过程中所有的尺寸单位都是px,像素,在绘制阶段是直接跟屏幕打交道的

举例,我们画一条线

package com.example.viewtest.viewimport android.content.Context
import android.graphics.Canvas
import android.graphics.Paint
import android.util.AttributeSet
import android.view.Viewclass TestView(context: Context, attrs: AttributeSet) : View(context, attrs) {private val paint = Paint(Paint.ANTI_ALIAS_FLAG)override fun onDraw(canvas: Canvas) {super.onDraw(canvas)canvas.drawLine(100f, 100f, 300f, 300f, paint)}
}

画个圆

package com.example.viewtest.viewimport android.content.Context
import android.graphics.Canvas
import android.graphics.Paint
import android.util.AttributeSet
import android.view.View
import com.example.viewtest.ext.dpclass TestView(context: Context, attrs: AttributeSet) : View(context, attrs) {private val paint = Paint(Paint.ANTI_ALIAS_FLAG)override fun onDraw(canvas: Canvas) {super.onDraw(canvas)canvas.drawCircle(width / 2f, height / 2f, 100.dp, paint)}
}

接下来讲Path,path不是用来绘制路径的,绘制路径只是其中一个功能而已,他是用来绘制图形的

使用Path绘制一个圆

package com.example.viewtest.viewimport android.content.Context
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.Path
import android.util.AttributeSet
import android.view.View
import com.example.viewtest.ext.dpclass TestView(context: Context, attrs: AttributeSet) : View(context, attrs) {private val paint = Paint(Paint.ANTI_ALIAS_FLAG)private val path = Path()// 在尺寸发生改变的时候,初始化 pathoverride fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {super.onSizeChanged(w, h, oldw, oldh)path.reset()// 最后一个参数:Direction,CW:顺时针,CCW:逆时针path.addCircle(width / 2f, height / 2f, 100.dp, Path.Direction.CW)}override fun onDraw(canvas: Canvas) {super.onDraw(canvas)
//        canvas.drawLine(100f, 100f, 300f, 300f, paint)
//
//        canvas.drawCircle(width / 2f, height / 2f, 100.dp, paint)canvas.drawPath(path, paint)}
}

这里主要讲一下Direction,Direction主要是用来处理两个图形相交处的样子,通过Direction的配合使用,可以使图形相交地方之处实现实心还是镂空的效果,这里有一个标准

如果要确定一个点是在内部还是外部,那么就从这个点像任意方向发送一条射线,这条线遇到左旋(逆时针)路径就+1,右旋路径就-1,最终结果无论正负,只要不为0,那么这就是一个在内部的点

除此之外,一般使用path.fillType属性,他的默认值是Path.FillType.WINDING,使用path.fillType是另一套计算方式,也就是说不管左旋还是右旋,一个点只记录和path的相交次数,奇数为内部,偶数为外部

镂空效果直接设置为 path.fillType = Path.FillType.EVEN_ODD

举个例子,一个圆和一个方相交

package com.example.viewtest.viewimport android.content.Context
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.Path
import android.util.AttributeSet
import android.view.View
import com.example.viewtest.ext.dpclass TestView(context: Context, attrs: AttributeSet) : View(context, attrs) {private val paint = Paint(Paint.ANTI_ALIAS_FLAG)private val path = Path()// 在尺寸发生改变的时候,初始化 pathoverride fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {super.onSizeChanged(w, h, oldw, oldh)path.reset()// 最后一个参数:Direction,CW:顺时针,CCW:逆时针path.addCircle(width / 2f, height / 2f, 100.dp, Path.Direction.CW)path.addRect(width / 2f - 100.dp, height / 2f, width / 2f + 100.dp, height / 2f + 2 * 100.dp, Path.Direction.CCW)// 第二个参数的作用是是否要自动闭合pathMeasure = PathMeasure(path, false)pathMeasure.length// 给定一个长度,会返回当前长度所处位置的切点,也就是正弦值pathMeasure.getPosTan()path.fillType = Path.FillType.EVEN_ODD}override fun onDraw(canvas: Canvas) {super.onDraw(canvas)
//        canvas.drawLine(100f, 100f, 300f, 300f, paint)
//
//        canvas.drawCircle(width / 2f, height / 2f, 100.dp, paint)canvas.drawPath(path, paint)}
}

pathMeasure = PathMeasure(path, false)

第二个参数的作用是是否要自动闭合,如果一个图形假设是个半圆,那么测量的就是这个半圆的长度,如果是true就是半圆+起始点连接线的长度

http://www.yayakq.cn/news/142502/

相关文章:

  • 网站设计业务html简单网站建设代码
  • 免费网站模版 好用的建设通网站怎么注销
  • 优化网站首页电商 网站建设
  • 成都商城网站开发设计北京网站设计学习
  • 网站建设案例典型企业案例商洛网站建设
  • 网站建设:成都今网科技如何开发微信网站
  • 网站用图片做背景更改wordpress所有的链接
  • 网站后台需要ie6修改用什么做网站 优化
  • 好看的商城网站设计闻喜网站建设
  • 免费建筑设计素材网站seo网站排名优化方案
  • 怎么创建网站详细流程重庆seo俱乐部联系方式
  • 岳阳网站建设设计如何做自己的在线作品网站
  • 深圳建设品牌网站wordpress 仿 模板
  • 上海网站建设集中wordpress jiathis
  • 泉州 网站建设centos7搭建wordpress
  • 学校网站建设的要点网上书城网站开发环境
  • 青岛专业做网站的公司中企动力制作的网站后台
  • 网站后台文章排版云南建设工程信息服务平台
  • 做与食品安全有关的网站微信小程序可以自己开发吗
  • 网站设计和网页设计锦州网站建设推广
  • 门户网站做啥惠州百度seo地址
  • 轮网站开发的重要性门户网站建设工作制度建立情况
  • 物流网站的建设方案财务管理专业简历制作
  • 世界工厂采购网站软文广告素材
  • 承德网站建设电话cps游戏推广平台
  • 做商品二维码检测的网站企业宣传片制作
  • 技术网站推广范例网站一年费用多少钱
  • 重庆移动网站制作网站管理建设
  • 淘宝联盟怎么样做网站做一个打鱼网站需要多少钱
  • 宁波优化网站排名价格表中国企业500强2020排名