热敏触摸兼容性问题

4
发布我的产品后,我开始收到一些投诉,称某些手机上某个屏幕无法工作。经过大量研究和尝试修复此问题,我发现受热控制而不是压力控制的手机会出现此问题。不幸的是,我只确定了问题所在。问题在于鼠标抬起和鼠标移动事件似乎是相同的运动。以下是我的代码运行方式:
if(event.getAction()==MotionEvent.ACTION_MOVE)
{
    lockdown=true;
}
else if(event.getAction()==MotionEvent.ACTION_UP && lockdown==false)
{
     ...
}
else if(event.getAction()==MotionEvent.ACTION_UP)
{
    ...
    lockdown=false;
}

这段代码在我的压力触控手机上运行良好。设计时考虑到当触摸被拖动时,特定的功能将不起作用。我真的需要一些关于如何解决这个问题的见解。


这是我第一次听说热敏触摸屏。有没有使用这种技术的设备的例子? - josephus
Droid X是我遇到的最常见的情况。我还遇到过有人用平板电脑报告了同样的问题。 - Syzix
你尝试过联系或在摩托罗拉开发者网站上进行研究吗? - AlfredoVR
不仅仅是摩托罗拉手机,还有其他一些像HTC G2这样的手机。 - Syzix
1个回答

2

经过一夜与我的测试人员反复沟通之后,我得出了以下结论:

// somewhere in the prior code a pressure sample is needed
public float dwnPressure
if(event.getAction()==MotionEvent.ACTION_DOWN)
{
 dwnPressure=float(event.getPressure()*0.99)
}

回到我遇到问题的代码处

if(event.getAction()==MotionEvent.ACTION_MOVE)
{
 if(event.getPressure>dwnPressure)
 {
  lockdown=true;
 }
}
else if(event.getAction()==MotionEvent.ACTION_UP && lockdown==false)
{
 ...
}
else if(event.getAction()==MotionEvent.ACTION_UP)
{
...
 lockdown=false;
}

这个更改在一些之前有问题的手机上完美运行。对于一些手机来说,性能有了显著的提升,但是还有点棘手。我认为即使不是100%完美,至少我会分享我的努力,因为这个问题在stackoverflow上没有像我想象中那样快速得到解答。


我使用了你提到的锁定压力,但是我使用了一个开关来代替所有的if语句:S - Raykud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接