首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android任意位置绘制文本

基础通常情况下,屏幕的特定位置上显示文字是个很简单的事情。使用TextView,结合各种XxxLayout,基本上想在哪显示文字都可以。...,我们需要传入(x,y)坐标参数让Canvas知道我们期望在哪个位置绘制文本。...x、y分别传入多少才能让文字圈圈的中间显示呢?本文将通过这个例子,来讲述Android中如何灵活地在想要的位置绘制文本。...实际上,y水平线就是字体排印学中的“基线(baseline)”,大部分英文字母和阿拉伯数字都绘制基线之上,例外的如上述实例中的“p”等,下半部分会超出基线。...中文字符维基百科说东亚字体无基线,也无升部和降部,那Android里中文的绘制是怎样的一种情况呢?

2.4K11
您找到你想要的搜索结果了吗?
是的
没有找到

Android 应用开发】Canvas 精准绘制文字 ( 文本边界坐标解析 | 绘图位置 )

文章目录 一、文本边界坐标解析 二、绘图位置 一、文本边界坐标解析 ---- 在上一篇博客 【Android 应用开发】Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐..., 就是调用 Canvas 的 drawText 方法 , 传入的 x 值和 基线值 ; 下图中的 绿色矩形框是 Canvas 的绘图区域 , 橙色矩形框是 Canvas 绘制文本的实际区域 ; 绘图区域...包含 文本实际占用区域 ; 上述的坐标值 , 是如下坐标系的值 ; left = 4 , top = -31 , right = 28 , bottom = 0 ; left 值是 绘图区域 最左侧..., 基线值是 0 , 正数 , 负数 , 0 都有可能 , 这里是 0 ; 一般是正数或 0 , 负数不常见 ; 二、绘图位置 ---- 使用 Canvas 的 drawText 方法绘制文字 ,...传入 ( x , y ) 坐标 , x 是绘制区域的左侧 , y 是文本基线 , 绘制位置如下 : 如果不是要求很精确的话 , 一定程度上可以理解为 传入的值 左下角的位置 ; 如果要精准到像素级别

1.8K10

Android精确测量文本宽高及基线位置的方法

前言 笔者最近在做一款弹幕控件,里面涉及到绘制文本,以及文本边框。而绘制文本边框需要知道文本的左边位置,上边位置,以及文本的宽高。...通常来说,使用 Canvas 绘制文本,可以通过画笔 Paint 来设置文字的大小。但是画笔的大小与文字的宽高并无直接关系。 大家应该能说上几种测量文字宽高的方法,如: 方案1....我们准备一个自定义 View, onDraw 方法中使用 mPaint 绘制一个文本 “e”, 然后截图测量文本宽高,得出以下结果: ? 可以看到,文本的宽为 18, 高为 22。...我们可以看下面的例子: 自定义 View 的 onDraw 方法中,绘制一个字符 “e”, 绘制y坐标为 baseline,所以文字应该会顶着 Activity 的边界。...那问题来了,究竟怎么计算才能计算出真实的文本的基线位置呢。 我们使用之前的方案3来试试。

1.1K21

【STM32H7】第13章 ThreadX GUIX窗口任意位置绘制2D图形

mod=viewthread&tid=98429 第13章 ThreadX GUIX窗口任意位置绘制2D图形 本章节为大家讲解GUIX窗口任意位置绘制2D图形。...新调整的界面效果如下: 文本控件和按钮控件以外的区域,我们都可以做2D绘制。...13.3 GUIX的2D绘制实现 GUIX Studio上设置好绘图函数名后,剩下就是程序里面实现2D绘制,这里把实现方法为大家做个说明。...gx_utility_rectangle_define 定义一个矩形框,后续的2D绘制函数都是在这个矩形范围内绘制的,此函数的后四个参数是左上角位置和右下角位置。...13.6 总结 本章节主要为大家讲解了GUIX窗口任意位置绘制2D图形,推荐大家设置不同的参数看效果,熟练掌握这些函数的用法,这样用起GUIX也得心应手。

71350

【STM32F429】第13章 ThreadX GUIX窗口任意位置绘制2D图形

mod=viewthread&tid=98429 第13章 ThreadX GUIX窗口任意位置绘制2D图形 本章节为大家讲解GUIX窗口任意位置绘制2D图形。...新调整的界面效果如下: 文本控件和按钮控件以外的区域,我们都可以做2D绘制。...13.3 GUIX的2D绘制实现 GUIX Studio上设置好绘图函数名后,剩下就是程序里面实现2D绘制,这里把实现方法为大家做个说明。...gx_utility_rectangle_define 定义一个矩形框,后续的2D绘制函数都是在这个矩形范围内绘制的,此函数的后四个参数是左上角位置和右下角位置。...13.6 总结 本章节主要为大家讲解了GUIX窗口任意位置绘制2D图形,推荐大家设置不同的参数看效果,熟练掌握这些函数的用法,这样用起GUIX也得心应手。

72420

Android如何判断当前点击位置是否圆的内部

控件(本项目中使用的圆形控件是github上的),其实所占的区域还是正方形区域,只是显示内容为圆形,当我们给ImageView设置触摸事件时,没有显示区域也会相应点击事件,而我们可以通过计算当前点击的位置来判断...MotionEvent.ACTION_DOWN: lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); //获取控件屏幕的位置...x坐标与圆心的x坐标的距离 int distanceX = Math.abs(vCenterX-lastX); //点击位置y坐标与圆心的y坐标的距离 int distanceY =...Math.abs(vCenterY-lastY); //点击位置与圆心的直线距离 int distanceZ = (int) Math.sqrt(Math.pow(distanceX,2)+...Math.pow(distanceY,2)); //如果点击位置与圆心的距离大于圆的半径,证明点击位置没有圆内 if(distanceZ r){ return false;

2.1K20

Android 使用Canvas图片上绘制文字的方法

AndroidAndroid中 Paint 字体、粗细等属性的一些设置 Android SDK中使用Typeface类来定义字体,可以通过常用字体类型名称进行设置,如设置默认黑体: Paint mp...(默认值好像为0),但假如设置了,再绘制文本的时候一定要恢复到0 说明:对于中文粗体的设置,好像只能通过setFakeBoldText(true)来实现,尽管效果看起来不是很实在(字体中空效果)。...一个小应用,图片上绘制文字,以下是绘制文字的方法,并且能够实现自动换行,字体自动适配屏幕大小 private void drawNewBitmap(ImageView imageView, String...StaticLayout(textString, Paint, width-start_x*2, Alignment.ALIGN_NORMAL, 1.5f, 0.0f, false); //绘制位置...canvas.translate(start_x, start_y); staticLayout.draw(canvas); } 以上这篇Android 使用Canvas图片上绘制文字的方法就是小编分享给大家的全部内容了

4.3K20

android判断点击位置是否扇形区域内

在做仿支付宝记账本界面效果时遇到了一个问题,环形图中点击每一个环是会显示出不同的内容,因此,必须判断用户到底点击了哪个圆环,网上查阅资料说可以根据颜色来判断,但是心里总是觉得根据颜色不是很好的解决方案...绘制扇形 要判断点击的位置是否是扇形区域内,首先要绘制扇形,绘制扇形的方法可以使用canvas.drawArc()方法。...这里介绍的是使用Path的方法,然后调用canvas.drawPath(ovalPath,paint);方法来进行绘制。...主要代码如下: @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //将画布的坐标原点移到圆心位置...,判断是否扇形内的方法如下: public boolean onTouchEvent(MotionEvent event) { float x; float y; switch

1.2K20

速读原著-Android应用开发入门教程(图像、图形、文本的基本绘制)

9.2 图像、图形、文本的基本绘制 Android 中基本的绘制包括了图像、图形和文本绘制。...参考示例程序:ApiDemo 的AlphaBitmap(ApiDemo=>Graphics=>AlphaBitmap) 源代码:android/apis/graphics/AlphaBitmap.java...本程序界面上自上而下一共绘制了 3 个内容,第一个是一个原始位图,第二个是经过变化的位图,第三个是几何图形。...setContentView(new SampleView(this)); // 设置实现中的 SampleView } } SampleView 是其中扩展了 View 的实现,主要的内容类的构造函数和...3 个位图 } } 第 1 个图是直接对原始的图像进行了绘制;第 2 个图是原始图像的基础上抽取了透明通道,所以绘制时画笔(Paint)的颜色起到了作用;第 3 个图是调用

40610

Android 应用开发】Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐 )

, 是使用 Paint Canvas 中绘制文本的真实占用区域 , 如下图红色矩形框所在的区域 , 与文本的相对坐标 , 下图的红色矩形框的 右下角是 ( 0 , 0 ) 坐标位置 ; Rect...; left 和 right 值 , 是相对于 左侧的真实值 ; top 和 bottom 值 , 是相对于 文本 基线值的相对值 , top = -31 , 说明文本的顶部基线上方 31 像素位置...与 给定的中心点对齐 ; 根据中心点位置 : 确定绘制文本的左侧位置 : x - (rect.left + rect.right) / 2 , 绘制文本 , 是下图红色矩形框的位置 , 文本位置是不确定的..., 可能在红色矩形框内的任意位置 , 需要借助 Rect 边界确定文本位置 , 确定绘制文本的顶部位置 : y - (rect.top + rect.bottom) / 2 , 绘制文本 , 是下图红色矩形框的位置..., 文本位置是不确定的 , 可能在红色矩形框内的任意位置 , 需要借助 Rect 边界确定文本位置 ;

1.3K20

【MATLAB】基本绘图 ( 绘制多图 | 设置图形对话框在 Windows 界面的位置和大小 | 一个图形上绘制多个小图形 )

3文章目录 一、绘制多图 1、绘制多图 2、代码示例 二、设置图形对话框在 Windows 界面的位置和大小 三、一个图形上绘制多个小图形 一、绘制多图 ---- 1、绘制多图 存在一种绘图情况 ,...需要同时展示两条曲线 , 但是二者的 x 或 y 轴差距过大 , 需要绘制两个图中 ; 绘制每个图前 , 先调用一次 figure , 就会在新的对话框中生成一张新的图形 ; 使用示例如下 :..., 平方函数 figure, plot(x, y1); % 绘制第二个图像 , 指数函授 figure , plot(x, y2) 绘图结果 : 二、设置图形对话框在 Windows 界面的位置和大小..., 宽高都是 500 像素 figure('Position', [0,0,500,500]); % 指定位置绘制平方函数 plot(x, y1); 绘图效果 : 屏幕左下角绘制对话框 , 对话框的宽高都是...); axis normal % 第一行第二列绘制图形, 坐标轴方形 square subplot(2,2,2); plot(x,y); axis square % 第二行第一列绘制图形, 坐标轴

6.3K70

Draw Text in Deep

文本测量 文本的测量是非常复杂,因为要适配全球几百种语言不同的排版,除了前面提到的FontMetrics,Android的渲染API还提供了很多测量文本的API。...这个值是系统根据文本的字体和字号自动计算的。当你使用drawText一行行绘制文字的时候,可以换行的时候获取下一行的baseline坐标。...,一共有三种,LEFT、CETNER和RIGHT,默认值为LEFT,它的作用是绘制的时候确定绘制的方向,例如设置为LEFT,那么文本绘制的时候,就是从baseline的StartX开始向右绘制文本,如果是...文本的居中绘制 Android文本绘制都是使用baseline进行定位的,通过fontMetrics和已知的区域坐标,是可以推算出文字的其它关键坐标的,所以,文本任意区域的任意位置绘制问题,其实就是一个坐标运算的问题...这个方法一些自定义文本绘制的场景下比较常用,例如阅读类APP的文字排版,需要在换行的时候动态折断或生成一行新的字符串。 基本使用方式如下所示。

1.3K30
领券