2011-12-04 19 views
0

私はそれに2つのボタンで構成された1つの画像を持っています。私はデフォルトのボタンコントロールを使いたくないのですが、私はイメージのボタンに対してアクションを実行したいと思います。画面上のAndroidをクリック

画像のボタンにonclickの実行するにはどのような方法がある。..

答えて

0

あなたはボタンのウィジェットを使用する必要があります。押されたために、あなたが異なる画像を必要とする場合/カスタムDrawableのこのようにすることができ推移

<Button 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:background="@drawable/button" /> 

:デフォルトの外観を好まない場合は、属性を持つボタンのカスタムイメージを指定することができます

:あなたは ImageButton

ImageButton yourButton; // Declare as class member 

のonCreateコードを使用することができます

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/button_pressed" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/button_focused" /> <!-- focused --> 
    <item android:state_hovered="true" 
      android:drawable="@drawable/button_focused" /> <!-- hovered --> 
    <item android:drawable="@drawable/button_normal" /> <!-- default --> 
</selector> 
0
yourButton = (ImageButton)findViewById(R.id.yourbutton); 


yourButton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) 
    // your code 
    } 
}); 

XMLコードは次のとおりです。

<ImageButton 
    android:background="@drawable/img_btn_bg" 
    android:src="@drawable/img_to_show"></ImageButton> 
0

私はuは画像を分割し、その後、uは2枚の画像のそれぞれにhavexzのコードを使用することができなければならないと思います。私は確信していませんが、私はちょうどあなたがクリックで反応する画像の領域を与えることができるとは思わない。

0

GestureDetectorクラスを参照してください。あなたはGestureDetectoronTouchEvent(event)を呼び出し、クリックの座標を決定するためにevent.getX()event.getY()メソッドを使用してタップの座標を取得するには付属のリスナーで独自OnSingleTapConfirmed(MotionEvent event)を実装するためにImageViewonTouchEvent(MotionEvent event)をオーバーライドする必要があります。

さらに、trueを返すように、リスナーのonDown(MotionEvent event)メソッドをオーバーライドする必要があります。

おそらく最もエレガントな解決策ではありませんが、それは仕事をするでしょう。

関連する問題