2012-01-20 3 views
3

Я хочу изменить цвет жестов во время выполнения.
Я могу изменить цвет жестов, используя макет 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"); 
    } 
} 

, но это не работает

ответ

3

Чтобы изменить цвет Жест использовать

gestureOverlayView.setGestureColor(Color.BLACK);

где gestureOverlayView является объектом GestureOverLayView.

От использования ресурсов это, если у вас есть шестнадцатеричное значение строки для цвета

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

благодарит за него за ответы – varun

+0

ваш самый поприветствующий :) – Sameer

1

Все, что вам нужно сделать, это просто переопределить onGesturePerformed() метод, а затем попытаться изменить цвет, как я сделал ниже.

 @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); 
} 
Смежные вопросы