1

ビューに小さなボタンがありますが、それを大きくすることはできません (ムーバーとシェーカーはそれを大きくしたくありません)。ボタンの周りに他のビューがあるため、ボタンをクリックするのは非常に困難です。androiddevcon III Dave で誰かがビューのヒット領域の拡張について講演しましたが、彼は自分の例にコードを含めていませんでした。今、私はこれを実際に実装する方法を理解しようとしています。

私がやろうとしているのは、大きな四角形内でクリックが発生した場合に Button.onClick イベントを発生させることです。次のコードは 2.3.4 エミュレーターで動作するようです (エミュレーターにはテストしようとしている機能がないためわかりにくい) が、Android 2.3.4 を実行しているモトローラの電話ではまったく動作しません。

    View view=findViewById(R.id.Header);
    view.setOnTouchListener(new OnTouchListener(){
    public boolean onTouch(View v, MotionEvent event) {
        Rect rect=new Rect();
        Button btn=(Button)findViewById(R.id.btn1);
        btn.getHitRect(rect);

        util.scaleRect(rect);
        if (rect.contains((int)event.getX(), (int)event.getY())){
            event.setLocation(rect.exactCenterX(), rect.exactCenterY());
            btn.dispatchTouchEvent(event);
            return true;
        }
        else{
           return false;
            }
    }
    });
4

0 に答える 0