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

深圳手机端网站建设专业百度商业平台官网

深圳手机端网站建设专业,百度商业平台官网,邢台手机网站建设地方,如何在服务器上关闭网站一、基本思路 创建自定义控件的数据模型; 创建一个自定义 View 类,继承自 View; 在初始化方法中获取自定义属性的值。 创建设置数据方法,将数据模型列表转换成自定义绘制时的数据; 重写 onDraw 方法,以实现自定义的绘制逻辑。 二、主要绘制方法 1、drawLine 绘制直线 p…

一、基本思路

  • 创建自定义控件的数据模型;
  • 创建一个自定义 View 类,继承自 View;
  • 在初始化方法中获取自定义属性的值。
  • 创建设置数据方法,将数据模型列表转换成自定义绘制时的数据;
  • 重写 onDraw 方法,以实现自定义的绘制逻辑。

二、主要绘制方法

1、drawLine 绘制直线

public void drawLine(float startX, float startY, float stopX, float stopY, Paint paint)

  • startX 和 startY:起点的 x 和 y 坐标。
  • stopX 和 stopY:终点的 x 和 y 坐标。
  • 线条的样式是 Paint.Style.STROKE。

2、 drawLines 绘制一系列直线

public void drawLines(@Size(multiple = 4) @NonNull float[] pts, int offset, int count, @NonNull Paint paint)

  • pts:包含点坐标的数组。每条线由数组中的 4 个连续值定义,例如 pts[0] 和 pts[1] 是起点,pts[2] 和 pts[3] 是终点。因此,数组的长度必须是 4 的倍数
  • offset:从数组中跳过的值的数量。
  • count:在跳过 offset 个值后要处理的值的数量。由于每条线需要 4 个值,因此实际绘制的线条数量为 count / 4,也说明 count 值必须是 4 的倍数
  • 应用场景:drawLines 方法适用于绘制简单的直线,例如:绘制网格线,绘制坐标轴,绘制界线,在游戏或图表中绘制路径

3、drawText 绘制文本

public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint)

  • text:要绘制的字符串。
  • x 和 y:文本的起始点坐标(y 是基线的坐标)。
  • paint:用于绘制文本的 Paint 对象。
  • 绘制文本时,可通过设置 paint 属性来配置文本的颜色、大小、样式(粗体、斜体、下划线)等属性。
	val paint = Paint()// 设置文本颜色paint.color = resources.getColor(R.color.red, null)// 设置文本大小paint.textSize = resources.getDimension(R.dimen.sp_18)// 设置文本为粗体paint.isFakeBoldText = true// 设置文本为斜体paint.textSkewX = -0.2f// 设置文本为下划线paint.isUnderlineText = true

4、drawCircle 绘制圆形

public void drawCircle(float cx, float cy, float radius, @NonNull Paint paint)

  • cx:圆心的 x 坐标。
  • cy:圆心的 y 坐标。
  • radius:圆的半径。如果半径小于或等于 0,则不会绘制任何内容。
  • paint:用于绘制圆形的 Paint 对象,可以设置颜色、样式等属性。
  • Paint 样式:Paint.Style.FILL 样式绘制实心圆形;Paint.Style.STROKE 样式绘制空心圆形,绘制空心圆形时,还需要设置 trokeWidth 来定义线条宽度;Paint.Style.FILL_AND_STROKE:填充圆形并绘制边框。
  • 抗锯齿:可以通过 paint.setAntiAlias(true) 开启抗锯齿,使圆形边缘更平滑。

三、demo 示例

1、数据模型定义

	data class ChartModel(val label: String, val value: Int)

2、res/values/attrs.xml 中自定义属性

    <declare-styleable name="LineChartView"><attr name="android:textColor" format="color"/><attr name="android:textSize" format="dimension"/><attr name="android:max" format="integer"/></declare-styleable>

3、自定义折线图控件

	package com.android.androidfunctiondemo.customviewimport android.content.Contextimport android.graphics.Canvasimport android.graphics.Paintimport android.util.AttributeSetimport android.view.Viewimport androidx.core.content.withStyledAttributesimport com.android.androidfunctiondemo.Rimport java.text.NumberFormatimport java.util.Localeclass LineChartView @JvmOverloads constructor(context: Context,attrs: AttributeSet? = null,defStyleAttr: Int = 0,) : View(context, attrs, defStyleAttr) {// 折线颜色private var chartColor = resources.getColor(R.color.red, null)private val chartNodeRadius = resources.getDimension(R.dimen.dp_5)// 坐标文本字体大小、颜色private var labelTextSize = resources.getDimension(R.dimen.sp_18)private var labelTextColor = resources.getColor(R.color.textColor, null)// 坐标线颜色private val coordinateLineColor = resources.getColor(R
http://www.dtcms.com/a/501901.html

相关文章:

  • 猪八戒网怎么做网站石家庄语音网站建设公司
  • 网站禁止被采集网站服务器有哪几种
  • 网站上面的logo怎么做潍坊市建设工程质量安全监督站网站
  • 建设网站专栏外管局网站上做存量权益登记
  • 天津房地产网站建设网站建设服务ysaigo
  • 河北住房城乡建设厅官方网站无锡建设工程服务中心
  • PHP网站开发如何建立vip公共资源交易中心是事业单位吗
  • 网站建设 问卷调查免费培训机构
  • 做效果图去哪个网站接活有支付功能网站用的编程语言
  • 管理系统和网站哪个好做怎么在wordpress中添加类似赶集网的地图
  • 专业网站建设公司首选佛山市做网站
  • 制作自己的平台网站wordpress 移动端不显示
  • 唐山建设网站建站仿西部数码网站
  • 做视频图片博客网站查看网站点击量
  • 木藕设计网站大全html爱心代码
  • 新乡网站搜索引擎优化禅城网站建设企业
  • 福州网上商城网站建设企业建设网站的空间有哪些
  • 网站源码建站视频xampp wordpress 安装教程
  • 制作一个网站需要多少时间青岛做网站价格
  • 学做网站需要多久wordpress上显示pdf
  • 深圳工业设计师抖音短视频seo优化
  • 新泰高品质网站建设怎么下载网站所有源码
  • 公众号做成网站那样怎么做dw做网站弊端
  • 关于茶文化网站建设的背景wordpress免费插件分享
  • 资源下载网站建设为什么建立网站
  • 网站推广沈阳wordpress 主题制作软件
  • 重庆网站快速优化排名湖北企业网站建设哪家好
  • 网站引用百度地图phpcms主题移植wordpress
  • 网页制作及网站设计全国企业网查询信息官网
  • 一个人做企业网站要多少天新建网站推广