我无法弄清楚如何调整位图。基于此职位Bitmap.createScaledBitmap是要做到这一点,但它只是不为我工作。因为我在的onDraw尽一切观点的性质,所以我不认为我可以用一个布局或ImageView的。下面是我在做什么:
I can't figure out how to resize a bitmap. Based on posts here Bitmap.createScaledBitmap is the way to do it but it just doesn't work for me. Because of the nature of the view I'm doing everything in onDraw so I don't think I can use a layout or ImageView. Here's what I'm doing:
我有帝国大厦这是200x200的的图像。我运行这个code来进行设置:
I have an image of the Empire State Building that's 200x200. I run this code to set it up:
private void setupBitmap() { int bitmapSize = 100; Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.empirestate_sm); myBitmap = Bitmap.createScaledBitmap(originalBitmap, bitmapSize, bitmapSize, true); }这是我的onDraw:
This is is my onDraw:
protected void onDraw(Canvas canvas) { canvas.drawBitmap(myBitmap, 0, 0, null); }这是结果,注意形象只是裁剪,而不是调整:
And here is the result, note the image is just cropped and not resized:
只是为了S&放大器; G的,如果我设置bitmapSize = 200它看起来是这样的:
Just for s&g's if I set the bitmapSize = 200 it looks like this:
推荐答案
好,我理解了它。什么工作对我来说是离开位图是当你创建它。然后,当你画在画布上把它设置为合适的尺寸。我假设createScaledBitmap功能坏了?
Ok I've figured it out. What worked for me is leaving the bitmap as is when you create it. Then when you draw it on the canvas set it to the right size. I'm assuming the createScaledBitmap function is broken??
myCanvas.drawBitmap (landmarkImg, null, new RectF((float)0,(float)0,newWidth,newHeight),null);更多推荐
调整位图裁剪,而不是在视图缩放
发布评论