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();

}

没有缩放图像

带缩放图像

我的问题是“什么,我做错了导致我绘制路径的行为不一致。” 表示它在缩放时位置的变化(对于缩放,我使用的是 sephiroth 库)。我附上了两个图片链接。第一个图像适合屏幕和第二个缩放。

请帮助我或任何建议将不胜感激。谢谢

4

1 回答 1

1

问题解决了我刚刚删除

    canvas.setMatrix(getDisplayMatrix()); //removed

    canvas.concat(getDisplayMatrix());  //add
于 2013-05-08T08:51:45.313 回答