Android MPAndroidChart使用,X轴标签自定义显示,坐标显示不全,换行显示

2023-11-02

一、自定义显示

XAxis xAxis = chart.getXAxis();//获取设置X轴
ValueFormatter valueFormatter = new ValueFormatter() {
            private final String[] xLableList = new String[]{"110\n报警", "120\n报警", "119\n报警", "110\n报警", "120\n报警",
                    "119\n报警", "110\n报警", "120\n报警", "119\n报警"};

            @Override
            public String getFormattedValue(float value) {
                if (value >= 0) {
                    return mActivities[(int) value % xLableList.length];
                } else {
                    return "";
                }
            }
        };
        xAxis.setValueFormatter(valueFormatter);//设置自定义格式,在绘制之前动态调整x的值。
二、显示不全

xAxis.setGranularity(1)

设置 后 value是从0开始的,每次加1

xAxis.setLabelCount(xLableList.size());

根据X轴显示个数,设置标签数

三、X轴坐标换行显示

解决方案 setExtraBottomOffset + 自定义 CustomXAxisRenderer

假设自定义x坐标的textSize为xAxis.textSize = 9f
需要设置底部额外控件提供换行的文字显示的空间 chart.extraBottomOffset = 3 * 9f,其中9就是刚刚设置的xAxis.textSize 其中2表示我的X坐标文字有2行

chart.setExtraBottomOffset(2 * 9f);
xAxis.setTextSize(9);

重写类XAxisRenderer

public class CustomXAxisRenderer extends XAxisRenderer {

    public CustomXAxisRenderer(ViewPortHandler viewPortHandler, XAxis xAxis, Transformer trans) {
        super(viewPortHandler, xAxis, trans);
    }

    @Override
    protected void drawLabel(Canvas c, String formattedLabel, float x, float y, MPPointF anchor, float angleDegrees) {
//        super.drawLabel(c, formattedLabel, x, y, anchor, angleDegrees);//注释掉这个,否则坐标标签复写两次
        String[] lines = formattedLabel.split("\n");
        for (int i = 0; i < lines.length; i++) {
            float vOffset = i * mAxisLabelPaint.getTextSize();
            Utils.drawXAxisValue(c, lines[i], x, y + vOffset, mAxisLabelPaint, anchor, angleDegrees);
        }
    }
}
表格设置这条属性
chart.setXAxisRenderer(new CustomXAxisRenderer(chart.getViewPortHandler(), chart.getXAxis(), chart.getTransformer(YAxis.AxisDependency.LEFT)));

第三条需要自定义X轴坐标显示,集合添加对象  \n ,例:第一条

文章参考,http://www.imooc.com/article/details/id/255294

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android MPAndroidChart使用,X轴标签自定义显示,坐标显示不全,换行显示 的相关文章

  • nginx的配置转发

    有这样一个需求 项目中跳转到某个地址 但这个地址不想暴露给用户 因此我们想到要做一层代理 通过项目某个路径直接用ngnix代理到这个地址 查询相关文档后 发现方案如下 用return 302 1 2 3 location myBaidu r
  • 【SpringBoot】过滤器,监听器,拦截器介绍

    文章目录 一 简介 1 过滤器 2 拦截器 3 监听器 二 如何创建 1 过滤器 2 监听器 3 拦截器 三 总结 一 简介 通过两幅图我们可以理解拦截器和过滤器的特点 1 过滤器 过滤器是在请求进入tomcat容器后 但请求进入servl
  • 环形缓冲区– Disruptor背后的数据结构

    环形缓冲区 Disruptor背后的数据结构 Disruptor是一个高性能的库 用于在线程之间传递消息 该库由LMAX Exchange公司在几年前开发和开源 他们创建了此软件来处理其零售金融交易平台中的巨大流量 超过600万TPS 在2
  • 微信小程序Mustache语法

    小程序开发的wxml里 用到了Mustache语法 所以 非常有必要把Mustache研究下 什么是Mustache Mustache是一个logic less 轻逻辑 模板解析引擎 它是为了使用户界面与业务数据 内容 分离而产生的 它可以
  • C++20的原子智能指针

    一 原子变量和智能指针 在前面学习时提到过智能指针本身不是线程安全的 因为虽然其计数器是线程安全控制但数据不是 这也就是说其在多线程中赋值时 会产生冲突 而原子变量恰恰能够解决这个问题 不过在早先的c 标准中 原子变量不支持智能指针 所以要
  • base64上传图片,并且限制上传图片大小,

    param file data return bool false string 判断base64文件大小 以及格式 public function upimgbase64 file data if preg match data s im
  • camunda使用指南

    参考 Camunda 快速入门 Camunda SpringBoot与进阶内容 camunda中文站 camunda官方英文文档 文章目录 使用流程 1 下载和安装 2 编辑流程 3 部署流程 使用 Camunda Modeler 部署流程
  • Skeleton Key(万能密码)与 Hook PasswordChangeNotify

    1 Skeleton Key 使用Skeleton Key 万能密码 可以对域内权限进行持久化操作 Skeleton Key特点 Skeleton Key被安装在64位域控服务器上 支持Windows Server2003 Windows
  • swagger中Schema(required = true)已过时问题

    在使用swagger生成openapi时 idea显示 required 已经过时了 Swagger将忽略对象字段上的 Schema required true 注释 解决方案 1 降低swagger版本 2 修改为 Schema requ
  • setInterval的停止与重新启动

    使用js处理问题的时候 我们可能会经常使用到setInterval 来进行定时任务或者轮询的操作 那么如何让setInterval停止和重新启动呢 下边的代码就可以实现的呦 如果有更好的方法 不吝赐教 定义定时任务 function fun
  • 百度API获取地理坐标

    楼主是在用R画地图的时候需要获取各个地点的地理坐标从而接触到百度API的 不过它也可以应用到很多其它方面 楼主实验室有前往不同地区进行采样的需求 那么就可以记录下采样地点后 通过百度API一次性获取所有地理坐标 从而减免了很多麻烦呢 那么鉴
  • 对无签名的APP进行签名 命令行签名

    下面是在命令行对app进行签名 就是那么简单
  • 实例分割新思路之SOLO v1&v2深度解析

    前言 实例分割一般有两种做法 一种是top down 既先检测 bbox 后在每个bbox中进行mask的分割 例如Mask R CNN 第二种为bottom up做法 先分割出每一个像素 再进行归类 本文介绍的两篇论文另辟蹊径 直接分割实
  • 彻底卸载Keil4和Keil5

    一 卸载 在keil安装目录下找到uninstall exe文件 点击卸载 卸载完后将该文件下的所有文件删除 二 清除注册表 按下windows R打开运行 输入regedit打开注册表 将HKEY CLASSES ROOT目录下的 所有U
  • 2020初步总结

    一晃来这快两年了 今年写的博客也还算比较勤快吧 最忙的应该是上半年 经历了忙成狗的阶段 下半年还算稍微好点 对今年的总结是 1 每个月保证出博客量在12篇以上 这点还是有保证的 最忙的5月的时候 也是能保证12篇 2 对相关的学习进行了深入
  • 深度学习模型参数量计算

    若你的模型parameters为7327930 则 7327930 4 Byte 1024 1024 27 95 MB
  • 【Git详解大全】

    文章目录 1 Git 概述 1 1 版本控制 2 Git常用命令 2 1 初始化本地库 2 3 添加到暂存区 2 4 提交本地库 2 5 修改文件 2 7 历史版本 3 分支操作 3 1 什么是分支 3 2 分支的操作 4 Git团队协作
  • theos linux环境,MAC OS X下的Linux环境

    关键字 HomeBrew 好比Windows下的Cygwin 安装Homebrew 该si胜过macport ruby e curl fsSL https raw githubusercontent com Homebrew install
  • 【知识分享】C语言应用-易错篇

    一 C语言简介 C语言结构简洁 具有高效性和可移植性 因此被广泛应用 但究其历史的标准定义 C语言为了兼容性在使用便利性作出很大牺牲 在 C陷阱与缺陷 一书中 整理出大部分应用过程中容易出错的点 本文为 C陷阱与缺陷 的浓缩版本 想要更详细
  • 009 5道例题讲解函数递归——“C”

    函数递归是什么 程序调用自身的编程技巧称为递归 recursion 递归做为一种算法在程序设计语言中广泛应用 一个过程或函数在其定义或说明中有直接或间接 调用自身的一种方法 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问

随机推荐

  • Leetcode2486-追加字符以获得子序列

    双指针遍历即可 class Solution public int appendCharacters string s string t int n s size m t size int l 0 r 0 while l
  • 连接游戏服务器网络延迟高,网络延迟_连wifi玩游戏网络延迟高-太平洋IT百科

    网络延迟是游戏玩家最不能忍的 为了解决网络延迟的问题 玩家们装了光纤 换了路由 然而 为你我用了半年的积蓄 玩个农药还跳ping 开局两分钟 延迟400ms 网络延迟在王者荣耀中卡得连鲁班七号都表示 我想静静 连WIFI玩游戏网络延迟高怎么
  • 为什么动态库不能被其他动态或静态库包含

    如果静态库包含了动态库 则动态库失去了它的意思 因为动态库是在运行时调用的 如果包含在静态库里 意味着在编译时把动态库编译进去了 gcc不会做这么荒唐的事的 如果动态库包含了动态库 这也没必要 因为运行时可以直接调用了 为什么还要包含到另一
  • 腾讯云服务器搭建小皮面板phpstudy教程

    腾讯云控制台设置 找到自己服务器所在的实例 这里可以获得远程登录的账号密码 域名解析在下面添加自己ip解析到购买的域名就好了 搭建云服务器及php环境搭建教程如下 方包用的是windows server 服务器 适合新手 不像linux那样
  • GDI+ 中路径渐变画刷的使用

    背景 路径是一系列相互连接的直线和曲线 由许多不同类型的点所构成 用于表示复杂的不规则图形 GraphicsPath 类表示 路径渐变画刷允许设置颜色从中心向边界渐变的画刷 可以设置中心点颜色和边界点的颜色 构建路径渐变画刷 使用路径构建
  • Linux命令集锦-持续更新

    centos版本 CentOS Linux release 7 6 1810 Core 一 查看端口占用 lsof Linux安装 sudo yum install lsof Mac安装 brew install lsof lsof i p
  • 2020年排名前10的前端框架

    Ant Design 网站链接 https ant design index cn 蚂蚁金服出品 非常著名的框架 就算你不了解前端 也会在公司的项目中多少听到程序员说起过 目前很多公司都在用 已经很成熟 而且提供了对设计师友好的 Sketc
  • tensorflow目标检测api使用过程中的问题

    tensorflow目标检测api使用过程中的问题 使用环境 win10 pycharm开发平台 所有的依赖包都是用pip安装的 按照官方要求把api的依赖库装完之后在测试的时候提示no module named object detect
  • xshell卸载不干净导致无法安装

    卸载xshell 删除两个地方的注册表 Windows 文件夹下 C Program Files x86 InstallShield Installation Information 这个目录下 删了这个文件夹 F3FDFD5A A201
  • 【译】Hard Forks, Soft Forks, Defaults and Coercion

    区块链领域的一个重要论据是硬叉或软叉是否是首选的协议升级机制 两者之间的基本区别在于 软叉通过严格减少有效的交易集来改变协议的规则 所以遵循旧规则的节点仍然会进入新链 假设大多数矿工 验证者实施叉 而硬叉允许以前无效的交易和块变得有效 所以
  • centos7部署tomcat

    1 下载tomcat和jdk的tar gz包 并放在 root目录下 链接 https pan baidu com s 1fsJh8f6 rQxFzA5SIzUSfw 提取码 6zmg 2 解压文件 tar xf apache tomcat
  • [PCIe]LTSSM与电源管理

    1 LTSSM LTSSM全称是Link Training and Status State Machine 有以下11个状态 Detect Polling Configuration Recovery L0 L0s L1 L2 Hot R
  • 【cfeng work】什么是云原生 Cloud Native

    WorkProj 内容管理 云原生 云原生应用 十二要素应用 cfeng的work理解 本文introduce 云原生 Cloud Native相关内容 随着技术的迭代 从最初的物理机 gt 虚拟机 从单机 gt 分布式微服务 现在的热门概
  • C语言自定义函数求和

    include
  • vi笔记2——vi之简单编辑

    vi笔记2 vi之简单编辑 vi 简单编辑主要包含以下内容 Moving the cursor Adding and changing text Deleting moving and copying text More ways to e
  • 华三H3C交换机如何配置堆叠irf虚拟化(未配置检测机制)

    华三交换机如何配置堆叠irf IRF Intelligent Resilient Framework 智能弹性架构 是华三的软件虚拟化技术 将一台以上的交换机组合起来共同工作 能提供尽可能多的端口 多台交换机经过配置后可看成为一个虚拟的一体
  • 解析复杂的json数组嵌套

    chanNameList channelName 通道1 enable 1 perX 0 perY 0 rgbaBG 00000000 rgbaFont 00000000 channel 1 ip 192 168 121 13 status
  • JDK8的下载和安装,以及配置环境变量

    一 JDK的下载 https www oracle com java technologies downloads 1 进入JDK下载页面 2 进入下载页面 3 下载 二 JDK的安装 1 双击安装包 进入安装界面 直接点击下一步 2 选择
  • 综述---图像处理中的注意力机制

    重磅好文 微软亚研 对深度神经网络中空间注意力机制的经验性研究 论文 An Empirical Study of Spatial Attention Mechanisms in Deep Networks 高效Transformer层出不穷
  • Android MPAndroidChart使用,X轴标签自定义显示,坐标显示不全,换行显示

    一 自定义显示 XAxis xAxis chart getXAxis 获取设置X轴 ValueFormatter valueFormatter new ValueFormatter private final String xLableLi