安卓中的简单绘图应用程序



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

试试这个

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

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

最新更新