Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在运行时更改手势颜色_Android_Android Gesture - Fatal编程技术网

Android 在运行时更改手势颜色

Android 在运行时更改手势颜色,android,android-gesture,Android,Android Gesture,我想在运行时更改手势颜色。 我可以使用布局XML更改手势颜色,但不使用代码。 我试过了 private class GesturesProcessor implements GestureOverlayView.OnGestureListener { public GesturesProcessor() { GestureOverlayView overlay = (GestureOverlayView) findViewById(R.id.gestures_overla

我想在运行时更改手势颜色。
我可以使用布局XML更改手势颜色,但不使用代码。
我试过了

private class GesturesProcessor implements GestureOverlayView.OnGestureListener {
    public GesturesProcessor() {
        GestureOverlayView overlay = (GestureOverlayView) findViewById(R.id.gestures_overlay);
        Log.i("on", "constructor");
        overlay.setGestureColor(R.color.lightblue);
    }

    public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) {
        mDoneButton.setEnabled(false);
        mGesture = null;
        Log.i("on", "ongesture started");
    }

    public void onGesture(GestureOverlayView overlay, MotionEvent event) {
    }

    public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) {
        mGesture = overlay.getGesture();
        Log.i("on", "gesture ended");
        /*if (mGesture.getLength() < LENGTH_THRESHOLD) {
           overlay.clear(false);
        }*/
        mDoneButton.setEnabled(true);
    }

    public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) {
        Log.i("on", "gesture ended");
    }
}
私有类GesturesProcessor实现GestureOverlayView.OnTestureListener{
公共手势处理程序(){
GestureOverlayView overlay=(GestureOverlayView)findViewById(R.id.signatures\u overlay);
Log.i(“on”,“constructor”);
叠加。设置颜色(R颜色。浅蓝色);
}
已启动检测的公共无效(GestureOverlayView覆盖、MotionEvent事件){
mDoneButton.setEnabled(false);
mGesture=null;
Log.i(“on”,“onTesture启动”);
}
视觉上的公共空白(手势叠加视图叠加、动作事件){
}
测试结束时的公共无效(GestureOverlayView覆盖、MotionEvent事件){
mGesture=overlay.get手势();
Log.i(“on”,“手势结束”);
/*if(mGesture.getLength()

但是改变手势颜色的使用是行不通的

gestureoveryview.setGestureColor(Color.BLACK)

其中,gestureOverlayView是gestureOverlayView的对象

如果颜色有十六进制字符串值,请从资源中使用此选项

gestureOverlayView.setGestureColor(Color.parseColor(R.string.Color));

您所需要做的只是重写OnTesturePerformed()方法,然后尝试更改颜色,就像我在下面所做的那样

       @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    gestureView = (GestureOverlayView)findViewById(R.id.gvDrawingPadOrange);
    gestureView.setFadeOffset(3600000);
    gestureView.setEnabled(true);
    gestureView.setDrawingCacheEnabled(true);

    gestureView.addOnGesturePerformedListener(new GestureOverlayView.OnGesturePerformedListener() {

        public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {


        }
    });
    gestureView.setUncertainGestureColor(getResources().getColor(R.color.colorPrimary));
    gestureView.setGestureColor(Color.BLUE);
}