热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidEditText(TextView)如何绘制闪烁的光标?

如何解决《AndroidEditText(TextView)如何绘制闪烁的光标?》经验,为你挑选了1个好方法。

我正在通过扩展从头创建我自己的蒙古文垂直脚本TextView(和EditText)View.我试图了解如何在Android TextView源代码中实现闪烁光标.它似乎是由类的一个mEditor实例处理的.在那堂课里我找到了一个方法:EditordrawCursor

private void drawCursor(Canvas canvas, int cursorOffsetVertical) {
    final boolean translate = cursorOffsetVertical != 0;
    if (translate) canvas.translate(0, cursorOffsetVertical);
    for (int i = 0; i 

显然,光标本身是Drawable某种类型.

所以我找到了碎片,但我无法透过树木看到森林.能比我理解得更好的人能用简单的英语告诉我闪烁的光标是如何工作的吗?

以下是我不太了解的一些具体要点:

光标对关系TextView(或EditText)Layout,EditorDrawable.

每次光标闪烁时,是重绘所有文本还是只重绘光标区域?

注意:

接受的答案在我问的时候回答了我的问题.但是,如果有人能够添加一个更详细解释事物的更规范的答案,我会很高兴接受一个不同的答案.



1> Nikola Despo..:

    EditText是可编辑的TextView,Layout用于测量,计算,文本的布局位置和方式.Drawable只是为了保持光标的外观,后来被绘制在Canvas.

    只有光标Path是无效的.

闪烁基本上是递归的Runnable,即Handler每隔500毫秒(猜测)以开关方式执行,并且在EditText重点时重新安排.这也可以通过循环ValueAnimatorint 来实现,其中光标可绘制的alpha将在0到255之间切换.


链接到GitHub中特定代码行的技巧本身就值得投票!
推荐阅读
author-avatar
手机用户2502917325
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有