在过去的 2-3 天里,我一直面临着一个奇怪的问题。我想做的事情看起来很容易,但我的解决方案并没有以我想要的方式响应。让我告诉你我当然想要什么。
我有一张图片(.png)。我将它分成 5 个部分并将它们保存为 .png。我的期望是有一个视图对象将这 5 张图片显示为图片。所以我决定使用 canvas.drawBitmap() 方法在 onDraw() 方法中绘制这 5 张图片。它工作正常。但是,当我想调整它的大小时,我使用了 createScaledBitmap(bitmap, width, height, boolean)。我已将这种方式应用于每 5 个不同的位图对象,以在 onDraw() 方法中调整大小和绘制。不幸的是,我有一张完整的照片,但每张照片之间都有一条垂直线。我在 createScaledBitmap(bitmap, width, height, boolean) 方法中将布尔值更改为 true,然后它在图片质量不佳的情况下运行良好。
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for (int i = 0; i < 5; i++) {
Bitmap image = BitmapFactory.decodeResource(getResources(),
getResources().getIdentifier(
"f" + i, "drawable", getContext().getPackageName()));
image = Bitmap.createScaledBitmap(image, getWidth(), getHeight(), true);
canvas.drawBitmap(image, new Matrix(), null);
}
}
http://imageshack.us/photo/my-images/717/96553428.png
http://imageshack.us/photo/my-images/809/33612864.png
http://imageshack.us/photo/my-images/255/53597408.png
注意:绘图速度很重要。这意味着绘制时间应该少于 500 毫秒。