0

ビューを拡張するクラス B があり、setContentView を介してアクティビティを拡張するクラス A からこれを呼び出しています。クラス B では、マウス モーション リスナーとペイント関数を使用して何でも描画できます。クラス B にボタンを追加して、クラス A に移動していくつかの変更を行うことができるようにします。いくつかのコードを試しましたが、うまくいきませんでした。

   public class MotionDraw extends View {
    private Paint paint = new Paint();
    private Path path = new Path();
    //LinearLayout ll=new LinearLayout(getContext());


    public MotionDraw(Context context, AttributeSet attrs,int x) {
        super(context, attrs);

        //this.setOrientation(LinearLayout.VERTICAL);
        //Button b=new Button(getContext());
        //b.setText("Back"); // better: getContext().getString(R.string.someString);
        //this.addView(b);

                paint.setAntiAlias(true);
                paint.setAntiAlias(true);
        paint.setStrokeWidth(6f);
        //paint.setColor(Color.RED);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeJoin(Paint.Join.MITER);
        if(x == 1)
            paint.setColor(Color.RED);
        }

    @Override
    protected void onDraw(Canvas canvas) {


        canvas.drawPath(path, paint);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {

            some code ...
        }

        // Schedules a repaint.
        invalidate();
        return true;
    }

}
4

1 に答える 1

0

MotionDraw の場合、View の代わりに RelativeLayout を拡張してみてください。

于 2012-05-25T11:18:19.520 に答える