2011-01-22 12 views
0

私は通常onClickListenerを添付するカスタムビューを作成しました。私はいくつかのボタンのような動作をしたい:それが押されている場合は、onDraw()メソッドで定義されている外観を変更する必要があります。ただし、このコードは機能しません。クリック/タッチでボタンのような動作をするカスタムビュー

//In my custom View: 

@Override 
protected void onDraw(Canvas canvas) 
{ 

    boolean pressed = isPressed(); 
    //draw depending on the value of pressed 
} 

//when creating the view: 
MyView.setClickable(true); 

常にfalseが設定されています。どうしましたか?

ありがとうございます!

答えて

1

ボタンを使用して自分がしたいことを考えたことがありますか? ToggleButtonを使用して、xmlに短いセレクターを書き込むことができます。このセレクターは、押されたときに使用するイメージを指定できます。 this questionはあなたに役立つかもしれません。

4

ちょっとバディ、あなたのせいであなたがウルカスタムview.thrのクリックまたはタッチEVNTを実装していないview.youにはクリックEVNTは、これの代わりにタッチイベントを使用することはできませんされている。

:そう、コードワーク4 uの下に
myView.setOnTouchListener(new OnTouchListener() { 

public boolean onTouch(View v, MotionEvent event) { 
    // TODO Auto-generated method stub 

    switch(event.getAction()){ 
    case MotionEvent.ACTION_DOWN: 

    break; 
    case MotionEvent.ACTION_UP: 




    break; 
    case MotionEvent.ACTION_MOVE: 


    break; 
    } 

    return true; 
} 

});

クリックのため、このコード使用action_upで

、あなたはそれがあなたの新しいカスタムボタンをクリックの上に描くようにするにはあなたのため

0

を働い取得し、必要に応じて、フォームを無効にすることを忘れないでください。これはちょっとした問題です。例えば。

@Override 
     public boolean onTouch(View v, MotionEvent event) 
     { 
      /* Parse Event */ 
      this.invalidate(); 
      return true; 
     } 
関連する問題