как поместить холст в scrollview - PullRequest
0 голосов
/ 03 апреля 2020

Я планирую сделать заметку, которую пользователь может нарисовать на странице. поэтому мой холст должен охватывать весь текст редактирования, так как текст редактирования больше. но я столкнулся с трудностями, когда пытался сделать холст расширяемым. (прокручиваемый)
Я попытался поместить вид рисования в вид прокрутки, и я изменил параметр высоты в createBitmap в onsizechange, но ничего не появилось. на самом деле я не знаю, что мне нужно делать, поэтому, хотя я ищу много решений, но я не могу понять, как это сделать. итак ... как сделать это с возможностью прокрутки ..?

Я видел Прокрутка по большому холсту , и мне кажется, что мне нужно просто переопределить метод onmeasure. но я уже пробовал ...

представление рисования

public class painting extends View {
    public boolean changed = false;


    Canvas mCanvas;
    Bitmap mBitmap;
    Paint mPaint;
    float lastX;
    float lastY;
    Path mPath = new Path();
    float mCurveEndX;
    float mCurveEndY;


    int mInvalidateExtraBorder = 10;
    int m,n=1;
    int w2;
    int h2;

    static final float TOUCH_TOLERANCE = 8;


    public painting(Context context) {
        super(context);

        init(context);
    }


    public painting(Context context, AttributeSet attrs) {
        super(context, attrs);


        init(context);
    }


    private void init(Context context) {
        mPaint = new Paint();
        mPaint.setAntiAlias(true);
        mPaint.setColor(Color.BLACK);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeJoin(Paint.Join.ROUND);
        mPaint.setStrokeCap(Paint.Cap.ROUND);
        mPaint.setStrokeWidth(3.0F);


        this.lastX = -1;
        this.lastY = -1;
    }

    protected void onSizeChanged  (int w, int h, int oldw, int oldh) {


        Bitmap img = Bitmap.createBitmap(w, h*3, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas();
        canvas.setBitmap(img);
        canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.OVERLAY);


        mBitmap = img;
        mCanvas = canvas;


    }

    @Override
    public boolean canScrollVertically(int direction) {

        return true;
    }

    protected void onDraw(Canvas canvas) {
        if (mBitmap != null) {
            canvas.drawBitmap(mBitmap, 0, 0, null);
        }
    }

в основной деятельности, я думаю, что не так много относительных кодов, потому что я ставлю рисование кодами xml. но если нужны другие коды, я добавлю их. Я надеюсь, что чья-то помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...