过去2-3天我一直面临着一个奇怪的问题。我想做的事情看起来很容易,但我的解决方案并没有以某种方式回应我想要的。让我告诉你我当然想要的东西。
我有一张照片(.png)。我将它拆分为5个部分并将它们保存为.png。我的期望是有一个视图对象将这5张图片显示为图片。所以我决定使用canvas.drawBitmap()方法在onDraw()方法中绘制5个图片。它工作正常。但是,当我想调整大小时,我使用了createScaledBitmap(位图,宽度,高度,布尔值)。我已经将这种方式应用于每5个不同的位图对象,以调整大小并在onDraw()方法中绘制。不幸的是,我有一个完整的图片,但每张图片之间有一条线路。我已经在方法createScaledBitmap(位图,宽度,高度,布尔值)中将布尔值更改为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毫秒。