我有一个 canvas.DrawText.
我想使用手势来动态更改文本颜色和字体。使用弹出 View 类,这一切都很好。但我想使用 Fling scroll 使其更直接。
有数百万种颜色,通过在屏幕上滑动手指,我认为我可以增加/减少 colorInteger 并将其发送到 paint.setColor(colorInteger );
,然后再绘制。我整天都在尝试各种方法。
我有 public boolean onTouchEvent(MotionEvent event) {
我知道我必须在 MotionEvent.ACTION_DOWN
中捕捉 x/y
想要使用屏幕左边缘进行颜色更改,使用屏幕右侧进行字体更改。我有 21 种 ttf 字体。
问题是,我看到有 OnGestureListener onscroll
实现,但这会禁用我的 onTouchEvent
对吗?我在那里有很多 Action 。
public boolean onTouchEvent(MotionEvent event) {
有什么想法吗?
最佳答案
您可以使用GestureDetector
。实现 GestureDetector.OnGestureListener
并在那里捕获手势。
class MyActivity extends Activity implements GestureDetector.OnGestureListener {
// ....
gestureDetector = new GestureDetector(getContext(), this);
为 GestureDetector 提供这样的触摸事件:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else return super.onTouchEvent(event);
}
在 GestureDetector.OnGestureListener
的 onDown
中,如果你想处理这个手势,你必须返回 true
。例如。然后用户将手指向下放在指定区域返回true
,否则返回false
。如果此处返回 false
,则不会检测到以该事件开始的复杂序列(如滑动或滚动)。
关于android 需要建议才能开始使用手势进行开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6170071/