0

私は画像編集アプリケーションに取り組んでおり、ここで立ち往生しています。

public void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    super.onDraw(canvas);
    // int width=this.getDrawable().getIntrinsicWidth();
    // int height=this.getDrawable().getIntrinsicHeight();
    // float sw=((float)getBitmapRect().width())/width;
    // float sh=((float)getBitmapRect().height())/height;
    matrix = new Matrix();
    // matrix.postScale(sw, sh);

    canvas.setMatrix(getDisplayMatrix());
    canvas.concat(matrix);
    canvas.save();
    if (MainActivity.checkBtnOn == MainActivity.BSS_ONE) {
        for (Pair<Path, Float> p : foregroundPaths) {
            mPaint.setStrokeWidth(p.second);
            canvas.drawPath(p.first, mPaint);
         }

    } else if (MainActivity.checkBtnOn == MainActivity.BSS_TWO) {
        for (Pair<Path, Float> p : foregroundPaths) {
            mPaint.setStrokeWidth(p.second);
            canvas.drawPath(p.first, mPaint);
        }
    } else {   
        for (Pair<Path, Float> p : foregroundPaths) {
            mPaint.setStrokeWidth(p.second);
            canvas.drawPath(p.first, mPaint);
        }
    }

    // matrix.postScale(getScale(), getScale());
    rect = canvas.getClipBounds();
    displayRectF = new RectF(rect.left, rect.top, rect.right, rect.bottom);
    // rect =drawable.getBounds();


    canvas.restore();

}

ズーム画像なし

ズーム画像あり

私の質問は、「何、私は描画されたパスの一貫性のない動作につながる間違ったことをしているのですか」です。ズーム上の場所の変更を意味します(ズームの場合、セフィロスライブラリを使用しています)。2枚の画像リンクを貼っておきます。最初の画像は画面にフィットし、2 番目の画像は拡大されています。

私を助けてください、または何か提案をいただければ幸いです。ありがとう

4

1 に答える 1