Android Java:在保持质量的同时缩小位图?

Posted

技术标签:

【中文标题】Android Java:在保持质量的同时缩小位图?【英文标题】:Android Java: Scaling down bitmap while keeping quality? 【发布时间】:2013-06-30 23:06:59 【问题描述】:

我有一个非常高质量的 PNG,我想在不损失质量的情况下缩小它。

将我的图像导入 drawable-mdpi 后,这是我所做的:

titlelogo = BitmapFactory.decodeResource(getResources(), R.drawable.titlelogo);

titlelogoR = Bitmap.createScaledBitmap(titlelogo,(int)width, (int)(titlelogo.getHeight()*(width/titlelogo.getWidth())), true);

canvas.drawBitmap((Bitmap)titlelogoR,0,0,null);

这是我的原始图像: http://imgur.com/DPbXO5a,kVEWuz3#1

这是我设备上的样子: http://imgur.com/DPbXO5a,kVEWuz3#0

提前致谢!

编辑:问:为什么我想事后而不是事前缩放图像? A:所以图像在所有安卓设备上可以是相同大小的;有没有更好的方法来实现这一点?

解决了!

我从头开始我的项目并将我的图像放在 xxhdpi 文件夹中

【问题讨论】:

如果您的应用中从不需要如此高质量的图像,您不妨事先对其进行缩放。如果要为多种屏幕分辨率做好准备;使用最高分辨率作为基本图像并从那里缩小,或使用适当的 ldpi/mdpi/hdpi 文件夹。 【参考方案1】:

理想的方法是预先缩放图像并将其放入 mdpi 文件夹。如果您真的需要在您的应用中对其进行缩放,请将其放入 raw 文件夹中。

【讨论】:

我能问一下您为什么建议将它放在 raw 文件夹中吗?谢谢 @JadeByfield:好吧,如果您不打算让框架缩放图像,我认为 raw 文件夹可能是合适的。自从我在android上手动操作图像以来实际上已经有一段时间了,所以这可能不是最好的方法。但是与自动缩放器作斗争可能真的很烦人。

以上是关于Android Java:在保持质量的同时缩小位图?的主要内容,如果未能解决你的问题,请参考以下文章

TPL 数据流:在保持秩序的同时进行并行设计

flash里面,位图动态缩小,如何消除锯齿?

缩小php中的图像以快速查看并保持质量[关闭]

在保持区域的同时旋转位图(矩形)

java.lang.OutOfMemoryError:位图大小超出 VM 预算 - android - 多少图像?

如何在android中结合覆盖位图和捕获的图像?