2014-01-20 22 views
2

我一直在寻找这个,但我没有找到。我已经有一个OnTouchListener变量,它可以使按钮着色,并且它完美地工作,但我想让它在布局上工作。按下时按下线性/相对布局

这是我OnTouchListener

public static OnTouchListener buttonTinter = new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent me) { 
      synchronized (lock) { 
       if (me.getAction() == MotionEvent.ACTION_DOWN) { 
        Drawable d = v.getBackground(); 
        if (d != null) { 
         d.setColorFilter(Color.argb(255, 155, 155, 155), 
           PorterDuff.Mode.DARKEN); 
        } 
        return false; 
       } else if (me.getAction() == MotionEvent.ACTION_UP 
         || me.getAction() == MotionEvent.ACTION_CANCEL) { 
        Drawable d = v.getBackground(); 
        if (d != null) { 
         d.setColorFilter(Color.argb(255, 255, 255, 255), 
           PorterDuff.Mode.MULTIPLY); 
        } 
        if (SystemClock.elapsedRealtime() - mLastClickTime < 300) { 
         return true; 
        } 
        mLastClickTime = SystemClock.elapsedRealtime(); 
        return false; 
       } 
       return false; 
      } 
     } 
    }; 

的​​和时间部分仅仅是为了避免在同一时间接触2个按钮的错误。所以,它在Buttons或ImageButtons中可以很好地工作,但是当我将它设置为RelativeLayouts或LinearLayouts(没有错误,它只是忽略了代码)时没有任何反应。有没有人有任何建议?

SOLUTION:

布局的背景必须是绘制,并不出彩

回答

0

是否已进行了不同的界面 '点击'?

myLinearLayoutName.setClickable(true); 
myRelativeLayoutName.setClickable(true); 
+0

它已经可以点击了,我已经设置好了,但没有任何反应。 –