如果我使用此代码绘制位图,那么在画布上进行绘制时,它会被描绘出来。
代码1:
photoBitmap = Bitmap.createScaledBitmap(tempBitmap, display.getWidth(), display.getHeight(), true); // original
但是,如果我使用下面的代码来绘制位图,那么Bitmap没有得到stratched但我只得到了Image的左上角的某些部分。
代码2:
photoBitmap = Bitmap.createBitmap(tempBitmap);
现在,上面两个代码都是用于创建/获取位图。并在画布上绘制位图我使用下面的代码:
canvas.drawBitmap (photoBitmap,0, 0, null);// Original Without ImageView
现在,我应该怎么做才能看到完整的图像,它不应该是stratch。
感谢。
答案 0 :(得分:1)
听起来你要做的就是在两个方向上均匀地拉伸位图,使其适合显示器。试试这个:
float xscale = (float)display.getWidth() / (float)tempBitmap.getWidth();
float yscale = (float)display.getHeight() / (float)tempBitmap.getHeight();
if (xscale > yscale) // make sure both dimensions fit (use the smaller scale)
xscale = yscale;
float newx = (float)tempBitmap.getWidth() * xscale;
float newy = (float)tempBitmap.getHeight() * xscale; // use the same scale for both dimensions
// if you want it centered on the display (black borders)
float borderx = ((float)display.getWidth() - newx) / 2.0;
float bordery = ((float)display.getHeight() - newy) / 2.0;
photoBitmap = Bitmap.createScaledBitmap(tempBitmap, newx, newy, true);
// your drawing code will now look like this
canvas.drawBitmap (photoBitmap, borderx, bordery, null);