Android Bitmaps总是以72dpi保存

时间:2012-06-14 10:46:52

标签: android bitmap dpi

我正在制作位图(稍后将在纸上打印)并使用画布绘制它。 但保存后它总是有72 dpi的分辨率。我尝试使用bitmap.setDensity(96);,但似乎无效。

这就是我制作位图并保存它的方式,没有什么花哨的

Bitmap outBitmap = Bitmap.createBitmap(378,559,Bitmap.Config.RGB_565);
         OutputStream outStream = null;
         File file = new File(Environment.getExternalStorageDirectory(),
         "96dpiBitmap.png");
         try {
         outStream = new FileOutputStream(file);
         outBitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
         outStream.flush();
         outStream.close();
         } catch (FileNotFoundException e) {
         // doh
         } catch (IOException e) {
         // doh
         }

因此。如何使用dpi>保存位图? 72?

1 个答案:

答案 0 :(得分:0)

你必须从原来的位图创建缩放位图:

MyNewBitmap = Bitmap.createScaledBitmap(myOldOne,612,612,false); 

其中612宽度和612高度结果将是图像平方。我正在使用这种方法来防止Instagram缩放或剪切我的图像,因此它完全适合instagram图像裁剪:)。 无论如何,你必须找到适当的方法来缩放图像以适应72dpi。我猜800x600会做到这一点。尝试创建新的位图并缩放旧位图,然后保存newBitmap。 祝你好运