在android中将布局转换为位图时获取倒置图像

时间:2013-04-11 05:19:36

标签: android android-layout android-widget

我正在尝试使用以下代码将布局转换为图片。

LinearLayout rlpage = (LinearLayout)findViewById(R.id.rlpage);
rlpage.setDrawingCacheEnabled(true);
Bitmap viewBitmap = rlpage.getDrawingCache();
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
viewBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
 byte[] toSend = baos.toByteArray();  
        try {
            fileOutputStream.write(toSend);
            fileOutputStream.flush();
            fileOutputStream.close();
        }
        catch(Exception e)
        {

        }

这是我的布局

enter image description here

这是输出图像

enter image description here

这是什么原因以及如何克服这个?

2 个答案:

答案 0 :(得分:1)

希望这会对你有所帮助:

image_view.setDrawingCacheEnabled(true);
            Bitmap bmp =Bitmap.createBitmap(image_view.getDrawingCache());
            image_view.setDrawingCacheEnabled(false);

            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
            byte[] image = baos.toByteArray();

您可以将image_view替换为您的特定布局。

答案 1 :(得分:0)

我认为原因是JPEG仅支持完全不透明的像素。正如Meghs所说,对PNG使用压缩会更好。看看compress() method documentation