图像bimap完全不适合画布?

时间:2016-12-29 13:32:49

标签: android canvas bitmap

我正在尝试将我拍摄的照片位图很好地放入画布中进行绘画,但是画布总是会省略大部分位图。

我正在使用此CanvasView API from GitHub扩展视图,使用以下XML

<com.android.graphics.CanvasView
    android:id="@+id/canvasView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

使用来自here的另一个使用此语句的GitHub API代码中的位图时出现问题:

Bitmap bitmap = ImageLoader.init().from(photoPath).requestSize(width, height).getBitmap();

此后,我将使用上面的位图导入到画布中进行绘制:this.canvasView.drawBitmap(bitmap);

因此,在.drawBitmap()API中,它不是通常的drawBitmap(位图,宽度,高度,绘图);

public void drawBitmap(Bitmap bitmap) {
        this.bitmap = bitmap;
        this.invalidate();
    }

尝试了这两种方法来尝试解决问题,但无济于事或我正在探索错误的方向?还是我间错过了间歇性的步骤/代码?感谢任何有帮助的渲染!

canvasView.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY);
width = canvasView.getMeasuredWidth();
height = canvasView.getMeasuredHeight();

canvasView.post( new Runnable() {
    @Override
    public void run() {
        int width  = canvasView.getMeasuredWidth();
        int height = canvasView.getMeasuredHeight(); 
    }
});

1 个答案:

答案 0 :(得分:1)

在请求,调试或记录它的尺寸后,我会看到位图是否是预期的大小。

查看该回购的代码,我认为requestSize不符合您的想法。

在该库的repo中,有一条关于请求大小的评论:

// Calculate the largest inSampleSize value that is a power of 2 and keeps both
// height and width larger than the requested height and width.

现在这不是你所期待的我打赌。

我从不使用一个小的,不受欢迎的库来处理这些简单的东西,它没有增加任何价值,最好是控制它,而另一个库也是如此。另外,因为它们不受欢迎,所以在这里或其他任何地方都找不到太多帮助,因为人们没有使用它们的经验。