我不知道如何调整位图的大小。根据此处的帖子,Bitmap.createScaledBitmap是执行此操作的方法,但对我而言不起作用。由于视图的性质,我在onDraw中做所有事情,所以我认为我不能使用布局或ImageView。这是我在做什么:
我有一张200x200的帝国大厦的图片。我运行以下代码进行设置:
private void setupBitmap() {
int bitmapSize = 100;
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.empirestate_sm);
myBitmap = Bitmap.createScaledBitmap(originalBitmap, bitmapSize, bitmapSize, true);
}
这是我的onDraw:
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(myBitmap, 0, 0, null);
}
这是结果,请注意图像只是被裁剪并且没有调整大小:
仅对于s&g,如果我将bitmapSize设置为200,则它看起来像这样:
最佳答案
好的,我知道了。对我有用的是在创建位图时将其保留不变。然后在画布上绘制时,将其设置为正确的尺寸。我假设createScaledBitmap函数已损坏?
myCanvas.drawBitmap (landmarkImg, null, new RectF((float)0,(float)0,newWidth,newHeight),null);
关于android - 调整位图的大小是裁剪而不是在View中缩放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22965549/