1

初心者として、Android で簡単な描画アプリケーションを作成しようとしています。ただし、ボタンの上にパスが描画されているため、ボタンを押すことができないという次の問題が発生し続けています。次のコードをどのように調整して、ボタンを押すことから描画する機能を切り離すことができますか?

描画エクスペリエンスをボタン クリック エクスペリエンスから分離する方法についての提案ももちろん受け付けていますが、学習経験として現在持っているコードで問題を解決する方法にもっと興味があります。

私が言いたいことのより良い例をあげると: http://imgur.com/8i1RCt7

簡略化されたコード:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    aButton = (Button) findViewById(....
        bButton = (Button) findViewById(....

    aListener = new OnClickListener(){...
    bListener = new OnClickListener(){...

    nextButton.setOnClickListener(aListener);
    clearButton.setOnClickListener(bListener);

    layout = (RelativeLayout) findViewById(R.id.activity_main);
    cView = new CanvasView(this);

    layout.addView(cView);

    listener = new OnTouchListener(){

        @Override
        public boolean onTouch(View arg0, MotionEvent event) {
            float posX = event.getX();
            float posY = event.getY();
            switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                     path.moveTo(posX, posY);
                     break;
            case MotionEvent.ACTION_MOVE:
            case MotionEvent.ACTION_UP:
                     path.lineTo(posX, posY);
                     break;
            } // ends switch statement
            cView.invalidate();
            return true;

        }

    };
    cView.setOnTouchListener(listener);
4

1 に答える 1

1

これを試すことができます

RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
cView.addRule(RelativeLayout.BELOW , aButton.getId());
layout.addView(cView, p);

基本的に、これはキャンバスをボタンの下に配置する必要があります。現在は重複しています。

于 2013-09-16T22:58:20.317 に答える