0

次のような他のコードの別のアクティビティでコードを使用する場合、これが私のコードの一部です。

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 では機能しませんでした

4

0 に答える 0