相关疑难解决方法(0)

创建每个键具有多个/备用字符的SoftKeyboard

我已经关注了developer.android.com上有关 输入法的示例,并使用了SoftKeyboard示例应用程序.这些共同提供了有关简单键盘创建的足够信息.

我在API中看不到的是能够在标准键盘(LatinIME键盘)上为每个键创建备用/多个字符.

在此输入图像描述

上面的图像是长按"a"键的结果.当您长按一个键时,可以使用替换字符填充弹出窗口.

在此输入图像描述

也可以在某些键上给出一个弹出提示,提示用户按住一个键以获得弹出菜单.

到目前为止,我还没有找到关于如何实现这一目标的单一信息来源,希望有人能够给我一个良好的开端,直到那时我将遵循内置键盘的源代码,看看我是否可以进行逆向工程它.

编辑:如果developer.android.com的LatinIME键盘链接没有链接到一个的图片会有帮助:) LatinIME.java的实际源代码.

编辑2:更多作为参考而不是其他任何东西,这是我认为通常的longPress操作通过以便在KeyboardView.java中显示弹出键盘的序列:

onTouchEvent()
onModifiedTouchEvent()
mHandkler.handleMessage() with MSG_LONGPRESS
openPopupIfRequired() 
onLongPress()
Run Code Online (Sandbox Code Playgroud)

编辑3:

我仍然没有想到这一点 - 如何向键添加标签建议?答案表明它没有内置到API中,事实上我还没有找到代码来执行此操作.但是,2.3.4(API 10)上的键盘显示正在实现此功能:

在此输入图像描述

非常想弄清楚IT是如何做到的,但它不是onDraw()我能看到的方法中的任何地方- 这让我相信它是在KeyboardView元素之外编写的.然而,我无法找到layout用于在内置键盘上显示KeyboardView元素的文件 - 如果有人知道在哪里找到这个也许会给我提供我需要的线索.

编辑4:移动键预览问题,因为它稍微偏离主题:

如何禁用SoftKeyboard键预览窗口?

android soft-keyboard android-softkeyboard

44
推荐指数
5
解决办法
2万
查看次数

Android EditText替代方案

目前,在处理大量文本行(10000+)时,Android的EditText非常慢.看起来这种减速部分是由于EditText支持跨度,主要是因为EditText正在计算每条线的宽度,这是非常昂贵的.是否有更快的EditText替代品,或者一种优化它以使其可用的方法?

编辑:方法跟踪如下:

android.text.StaticLayout.generate: 99.1% CPU time inclusive, 8.8% exclusive (1 call)
    android.text.Layout.getParagraphSpans: 28% inclusive, 1.1% exclusive (4686 calls)
    android.text.MeasuredText.setPara: 20.6% inclusive, 1.6% exclusive (2343 calls)
    android.text.MeasuredText.addStyleRun: 18.6% inclusive, 1.1& exclusive (2343 calls)
    android.text.SpannableStringBuilder.getSpans: 15% inclusive (of parent calls), 56.7% inclusive (of all calls, 47.3% of which are from android.text.Layout.getParagraphSpans, 26% are from android.text.MeasuredText.setPara, 26% are from android.text.StaticLayout.generate)
Run Code Online (Sandbox Code Playgroud)

performance android textview android-edittext

18
推荐指数
2
解决办法
2347
查看次数

检测匿名/隐身浏览

Android默认浏览器允许匿名浏览.是否可以检测用户何时在默认Android浏览器应用程序的隐身标签中浏览?(我对用户访问的网址没兴趣)

我正在使用Content Observer对象来接收有关用户浏览历史记录的更新.当用户打开隐身标签时,我没有收到任何人所期望的任何更新.我想知道的是我怎么知道用户正在匿名浏览.

我可以知道浏览器应用程序位于前台,我知道没有注册历史记录网址,但我可以检索哪些其他信息以确保用户在隐身标签中进行浏览?

更新:

伙计们,谢谢你的评论.我确切地知道我在问什么.我知道隐身模式的重点,只有默认浏览器使用ContentProvider记录浏览历史记录.

我正在写一个家长控制应用程序,所以如果有人能回答这个问题我会非常感激.

browser android

5
推荐指数
1
解决办法
8653
查看次数