我想在我的应用程序中显示带渐变的启动画面。但是背景中渐变的质量非常糟糕。所以我创建了一个简单的辐射渐变来仔细观察。安卓渐变图形质量(缩放位图)
编辑:也许我应该提到我正在使用BitmapFactory.createScaledBitmap();和BitmapFactory.decodeStream()(图形是在资产的文件夹。)
那结果:
原* .JPG(质量100%)
截图Xperia X10的(我把使用Eclipse进行截图)
我想在我的应用程序中显示带渐变的启动画面。但是背景中渐变的质量非常糟糕。所以我创建了一个简单的辐射渐变来仔细观察。安卓渐变图形质量(缩放位图)
编辑:也许我应该提到我正在使用BitmapFactory.createScaledBitmap();和BitmapFactory.decodeStream()(图形是在资产的文件夹。)
那结果:
原* .JPG(质量100%)
截图Xperia X10的(我把使用Eclipse进行截图)
为了缩放位图并保留ARGB_8888,我创建了一个新的位图,大小合适。然后我使用画布在drawBitmap
的新位图上绘制内部位图。此方法允许我在绘制新位图之前缩放位图。
inputStream = assetManager.open(path);
originalBitmap = BitmapFactory.decodeStream(inputStream, null, opts);
Bitmap resizedBitmap = Bitmap.createBitmap(desiredX, desiredY, Config.ARGB_8888);
Canvas canvas = new Canvas(resizedBitmap);
canvas.drawBitmap(originalBitmap, null, new Rect(0, 0, desiredX, desiredY), null);
inputStream.close();
return resizedBitmap;
您可以在没有任何jpg文件的情况下使用,但使用shape drawable。创建矩形并为gradient
标记提供必要的参数。
谢谢,但位图更复杂。我刚刚上传了这个jpeg来举个简单的例子。 – Xazen
然后你可以像Skype应用程序那样做 - 它们只是为不同的屏幕画出很多drawable。我可以说这是很好的解决方案,但它仍然有效:) – Jin35
以这样的速度,我将需要很多drawables。我想要缩放的图像是用Photoshop为小游戏创建的背景。如果这只是一些很好的解决方案。但背景太复杂了。还有一些不是光芒四射的线性梯度。 – Xazen