效果:根据压感动态平滑地改变绘制曲线的粗细。
我在测试onTouchEvent的压感系数,于是做个了画图的例子来测试,感觉这个event.getPressure();的系数变化比较大,而且我不太清楚这个系数是依据什么变化的,虽然说用力touch和轻touch系数差别挺大的,但是效果有时候会突然从比较大变成很小,就是大小变化比较明显,不平滑。
我绘制了历史点,并且每次move时在每个历史点里都对paint对象做了setStrokeWidth的改变,然后invalidate(笔迹区域)。
因为不了解压感系数,所以简单做了个结合系数的转换:
- Java code
private float getEventPress(float press){ //压感系数一般都是在0.05~0.25,通常用力基本是0.15左右 //mSettingWidth是默认值,5 float width = mSettingWidth +(press*100-15);//press是ontouchevent中event.getPress出来的// Log.i(TAG,"press:"+press+",width:"+width); return width; }
我现在比较迷惑的就是这个计算width的公式,不清楚怎么去调整能比较平滑。
大家给些建议,多谢~
------解决方案--------------------
event.getPressure(nID); //LCD可以感应出用户的手指压力,当然具体的级别由驱动和物理硬件决定的
Android多点触控开发原理
压力还与硬件和驱动的设置有关,可能在不同的机器上,那就不一样了,一千个人眼里有一千个哈姆雷特了。
------解决方案--------------------
研究好深
------解决方案--------------------
我还是菜鸟,等待高手