将多个自定义视图保存为android中的单个jpeg

时间:2013-08-01 11:20:46

标签: android view bitmap save jpeg

在我的应用中,我在单个活动中获得了三个自定义视图。所以现在我需要将它保存为单个jpeg。如何实现这一目标。我知道如何保存一个或两个位图,但这次是单个活动中的三个自定义视图。

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

<com.wglxy.example.pinchzoompan.PanZoomView
android:id="@+id/zoomview1"
android:layout_width="100dp"
android:layout_height="700dp"
/>
<com.wglxy.example.pinchzoompan.PanZoomView1
android:id="@+id/zoomview2"
android:layout_width="100dp"
android:layout_height="700dp"
/>
<com.wglxy.example.pinchzoompan.PanZoomView2
android:id="@+id/zoomview3"
android:layout_width="100dp"
android:layout_height="700dp"
/>

</LinearLayout>
</FrameLayout>

每个视图都有一张图片,现在我需要将其保存为单个jpeg。任何人都可以向我提出一些想法。

3 个答案:

答案 0 :(得分:0)

使用layoutinflater将xml扩展为单个视图,然后创建该视图的位图。

答案 1 :(得分:0)

我将我的三个视图保存为使用此代码的单个jpeg文件

 layout = (LinearLayout) findViewById(R.id.viewLayout);
            layout.setDrawingCacheEnabled(true);
            layout.buildDrawingCache();
            viewbitmap = layout.getDrawingCache(true);

然后

try {
             viewbitmap.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(f));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }           

答案 2 :(得分:0)

将所有子项放在父布局中,然后将setDrwaingCache设置为该父视图的true,之后只要您需要在该父视图中获取或保存所有子项,就可以为该父项获取绘图。