我正在尝试将我拍摄的照片位图很好地放入画布中进行绘画,但是画布总是会省略大部分位图。
我正在使用此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();
}
});
答案 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.
现在这不是你所期待的我打赌。
我从不使用一个小的,不受欢迎的库来处理这些简单的东西,它没有增加任何价值,最好是控制它,而另一个库也是如此。另外,因为它们不受欢迎,所以在这里或其他任何地方都找不到太多帮助,因为人们没有使用它们的经验。