Android中的简单绘图应用程序

时间:2013-09-16 22:44:05

标签: java android

作为初学者,我正在尝试在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);

1 个答案:

答案 0 :(得分: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);

基本上,这应该将画布对齐在按钮下方。目前它是重叠的。