屏幕显示的坐标的探讨

简介: 注!这里的横向竖向是指终端实际显示的方向。   大部分手持终端的显示模式如图1.当我们在Activity的onCreate()中执行下面的语句时,整个屏幕会出现像图2的走向。
image

注!这里的横向竖向是指终端实际显示的方向。

 

大部分手持终端的显示模式如图1.当我们在Activity的onCreate()中执行下面的语句时,整个屏幕会出现像图2的走向。

/*  从下往上运行,默认是从右到左  */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  // 横向

由上可见,显然图3才是我们想要的显示效果。这又如何实现?

 

我们知道Canvas画布有两个经典的函数,分别是:

void android.graphics.canvas.drawText(text, x, y, paint);

void android.graphics.Canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint) ;

1、画文字的实现分析




直接使用这两个函数的画出的必须是图2的效果。图3效果的实现,需要使用一些技巧即使用画布旋转。DrawText()函数重新将Canvas.drawText()封装来实现画图3的文字的效果。

void DrawText(Canvas canvas ,String text , float x ,float y,Paint paint ,float angle)
{
    if(angle != 0)
    {
         /* 对画布旋转,再画文本 */
        canvas.rotate(angle, x, y);  
    }
    canvas.drawText(text, x, y, paint);
    /*  使用画布恢初始状,以便画下一句文字时再进行旋转*/
    if(angle != 0)
    {
        canvas.rotate(-angle, x, y);
    }
}

 

上图中,对于A语句,需要如下调用:

DrawText(canvas,text,x,y,painter,-90);

对于B语句,需要如下调用:

DrawText(canvas,text,x,y,painter,-90);

 

2、画直接的实现分析

canvas.drawLine(100, 100, 100, 400, painter);

相关文章
|
5月前
|
监控 Linux
Linux命令大全:echo与tail实现输出重定向。
这样,我们实现了使用echo和tail命令进行输出重定向的目的。在实际应用中,输出重定向技巧可节省时间,提高工作效率。希望本文内容对您了解和掌握Linux系统中echo与tail命令以及输出重定向的操作有所帮助。
179 27
|
5月前
|
存储 数据采集 安全
一文深入了解RFID与条码技术的差异
RFID与条码技术都是用于物体信息识别的重要手段,但两者在工作原理、数据存储、读取方式、速度、耐用性、成本及安全性等方面存在显著差异。条码依赖光学扫描,成本低但易受环境影响,数据量有限;RFID通过射频信号传输,具备更大存储容量、非接触式读取、快速多标签处理能力以及更高安全性,适合复杂环境。根据实际需求选择合适技术,二者均为物联网时代物品识别的关键工具。
|
前端开发 数据处理 API
后端开发:构建稳健与高效的服务器逻辑
后端开发:构建稳健与高效的服务器逻辑
|
10月前
|
前端开发 Java 程序员
面试官刁钻提问?轻松应对 break、continue 和 return 的巧妙用法
本次分享的主题是在面试break社招时被问到continue和return的区别与作用,面试官还刁钻的问了一些场景使用的坑点,小伙伴表示不太懂,现场有点慌。今天由我来给大家深入讲讲这三个关键词的区别和作用还会结合一些实战例子,保证你看完后不仅面试游刃有余,临时写代码也更得心应手,我们分为以下四部分。 1.了解背景铺垫的相关知识 2.Break、continue和return的定义 3.使用代码来实现三个关键字的逻辑 4.三个关键字在实践中应注意的坑点
|
11月前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。
|
11月前
|
云安全 弹性计算 安全
带你读《阿里云安全白皮书》(六)—— 公共云安全治理框架
《阿里云安全白皮书(2024版)》介绍了阿里云在云上安全治理框架的设计与建设,涵盖安全机制保障、安全能力支撑、数据主权保护、身份管控与授权、安全防护能力弹性扩展、快速响应与恢复、安全高可用及合规支撑等方面,旨在帮助客户以更低的成本实现更高的安全性。
|
10月前
|
人工智能 Kubernetes Cloud Native
荣获2024年AI Cloud Native典型案例,阿里云容器产品技术能力获认可
2024全球数字经济大会云·AI·计算创新发展大会,阿里云容器服务团队携手客户,荣获“2024年AI Cloud Native典型案例”。
|
人工智能 自然语言处理 文字识别
几步轻松定制私人AI助手
这两年大模型的发展持续火热,以至于许多资本和学者认为AI出现了泡沫,根本原因还是因为大模型目前还没有出现能够结合行业切实落地的应用。我才不关注泡沫不泡沫呢,我只关注大模型能给我带来哪些帮助即可。大模型离用户最近的助力方式就是AI智能体。
几步轻松定制私人AI助手
|
12月前
|
人工智能 文件存储 计算机视觉
YOLO系列模型发展史
YOLO系列模型从YOLOv3到YOLOv10,不断优化实时目标检测性能和速度。最新版本YOLOv8增加了实例分割、姿态估计等功能。此外,还包括Segment Anything Model(SAM)、MobileSAM、FastSAM、YOLO-NAS、RT-DETR和YOLO-World等模型,分别在不同场景下提供高效的目标检测和分割能力。
434 0
|
机器学习/深度学习 人工智能 搜索推荐
人工智能与机器学习的融合:未来技术发展的新趋势
随着科技的快速发展,人工智能(AI)和机器学习(ML)已成为当今最热门的话题。本文将探讨AI与ML的融合如何推动未来技术的发展,以及这种融合对各行业的影响。我们将通过分析最新的研究成果、统计数据和案例研究,深入探讨AI与ML的融合如何改变我们的生活和工作方式。
457 31