无法将我的视图保存到图像,但可以保存其他视图吗?

时间:2012-05-16 16:10:24

标签: android view bitmap

这是我的代码的一部分,如果我在其他代码中使用其他活动中的代码,例如:

case R.id.buttonMinus:

其中,而不是graphView,我使用标准视图(例如代码看起来像:

public void onClick(View v) {
v.buildDrawingCache();
Bitmap bm=v.getDrawingCache();

(其余相同)) 它工作正常,它只保存该特定按钮的背景。如果我在graphView中使用它,它总是以“Error1”结束(它在尝试压缩位图时捕获异常)。

(Graphview是一个将图形绘制到画布中的视图)

如果有人可以提供帮助,我一直都被困在这一天,提前谢谢! (我没有忘记添加

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

到清单)

我的代码:

...

buttonClick.performClick();

}


public void onClick(View v) {

    String[] verlabels = new String[] {"0m", Float.toString(-max/2) + "m", Float.toString(-max) + "m"};
    String[] horlabels = new String[] {"0 min",Float.toString((int)x[pocetBodu]/2)+" min",Float.toString((int)x[pocetBodu])+" min"};
    GraphView graphView = new GraphView(this, y, "Dive Manager",horlabels, verlabels, GraphView.LINE,x,Pspotreba,pocetBodu,pocetUseku);
    setContentView(graphView);


    if(Save)
    {
        graphView.setDrawingCacheEnabled(true);         
        graphView.buildDrawingCache();
        Bitmap bm=graphView.getDrawingCache();

        OutputStream fOut = null;
        Uri outputFileUri;
        try {
                File root = new File(Environment.getExternalStorageDirectory()+ File.separator + "DivePlanner" + File.separator);
                root.mkdirs();
                File sdImageMainDirectory = new File(root, "Dive.png");
                outputFileUri = Uri.fromFile(sdImageMainDirectory);
                fOut = new FileOutputStream(sdImageMainDirectory);
           }
        catch (Exception e) {
                Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
           }


        try {
                bm.compress(Bitmap.CompressFormat.PNG, 100, fOut);
                fOut.flush();
                fOut.close();
                Toast.makeText(this, "Ponor uložen", Toast.LENGTH_SHORT).show();
           } 
        catch (Exception e) {
            Toast.makeText(this, "Error1", Toast.LENGTH_SHORT).show();
           }
    }

我正在画布中绘制图表。最终,我希望能够通过将该视图导出为PNG图像来保存该图形。我正在通过其他一些活动加载。如果我尝试通过上面的代码保存它,它总是捕获异常并提供错误1.该文件永远不会被创建和保存。当我在onClick视图中执行此操作(作为测试)(例如public void onClick(View v)v.buildDrawingCache(); ...)它工作时,只保存了一个按钮图像,使用graphView它不起作用< / p>

0 个答案:

没有答案