发送后位图质量不好(Android/Java)

发送后位图质量不好(Android/Java),java,android,bitmap,Java,Android,Bitmap,我得到一个位图,带有: View v1 = (View) wpm.getParent().getParent(); Bitmap cs = null; v1.setDrawingCacheEnabled(true); v1.buildDrawingCache(true); cs = Bitmap.createBitmap(v1.getDrawingCache(true)); Canvas canvas = new

我得到一个位图,带有:

View v1 = (View) wpm.getParent().getParent();

        Bitmap cs = null;
        v1.setDrawingCacheEnabled(true);
        v1.buildDrawingCache(true);
        cs = Bitmap.createBitmap(v1.getDrawingCache(true));
        Canvas canvas = new Canvas(cs);
        v1.draw(canvas);
        canvas.save();
        v1.setDrawingCacheEnabled(false);

        String path = Images.Media.insertImage(getContext().getContentResolver(), cs, "MyImage", null);
        Uri file = Uri.parse(path);

        OutputStream outStream = null;
        try {
            outStream = getContext().getContentResolver().openOutputStream(file);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        cs.compress(Bitmap.CompressFormat.JPEG, 100, outStream);

        //file senden
        Intent sharingIntent = new Intent(Intent.ACTION_SEND);
        sharingIntent.putExtra(Intent.EXTRA_STREAM, file);
        sharingIntent.setType("image/jpeg");
        getContext().startActivity(Intent.createChooser(sharingIntent,"Erfolg teilen!"));
当我通过Facebook、Whatsapp发送时,。。。质量很差。但如果我把它复制到我的电脑上,它看起来很正常,在我通过Facebook发送之前,我可以检查它的外观,在那里它看起来也很正常。只有在寄出后,它看起来很糟糕。
如何更改此设置?

问题来自以下行:

cs.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
质量100太高,生成的jpg文件太大,Facebook无法接受。所以Facebook压缩了这张图片,降低了它的质量。使用以下代码可以解决您的问题:

cs.compress(Bitmap.CompressFormat.JPEG, 70, outStream);
尝试设置:

yourView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
如果开始位图的质量不好,则无法使用bitmap.compress使其更好


记住更好的质量需要更多的内存。

似乎这不是问题所在。位图还是不太好。还有别的想法吗?