2012-01-20 118 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); 
} 
相關問題