Xuni for Android のドキュメント
画像のエクスポート

後で使用できるように、FlexPie コントロールの画像を簡単に取得しておくことができます。画像は保存したり、他の人とシェアすることができます。アプリケーションに追加コードをいくつか付け加えて、定義済みの場所に画像を取得します。

次のコード例では、「クイックスタート」セクションで作成したサンプルを使用します。

サンプルコード

  1. 画像をエクスポートするには、次の import 文を MainActivity.java クラスに追加します。
    Java
    コードのコピー
    import com.grapecity.xuni.core.IEventHandler;
    import android.os.Environment;
    import android.graphics.Bitmap;
    import android.widget.Toast;
    import android.content.Intent;
    import android.net.Uri;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    
  2. onCreate(Bundle savedInstanceState) メソッド内の MainActivity.java クラスに、次のコードを追加します。
    Java
    コードのコピー
    // チャートが完全にレンダリングされると画像をエクスポートします
    mFlexPie.getRendered().addHandler(new IEventHandler()
     {
       @Override
        public void call(Object arg0, Object arg1)
            {
               if (exportImage())
                Toast.makeText(getApplicationContext(), "Snapshot stored to device", Toast.LENGTH_SHORT).show();
            }
        }, mFlexPie);
    }
    
    public boolean exportImage()
     {
       final String APP_PATH_SD_CARD = "/xuni/samples/FlexPie/";
       Bitmap image = mFlexPie.getImage();
       String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD;
    
    try
     {
        File dir = new File(fullPath);
        if (!dir.exists())
            {
              dir.mkdirs();
            }
       
    // 画像を新しいファイルに保存します
    OutputStream fOut = null;
    File file = new File(fullPath, "snapshot.jpeg");
    file.createNewFile();
    fOut = new FileOutputStream(file);
    
    // 画像を圧縮なしで JPEG 形式に変換します
    image.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
    fOut.flush();
    fOut.close();
    
    // 画像のインデックスをギャラリーに追加します
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    Uri contentUri = Uri.fromFile(file);
    mediaScanIntent.setData(contentUri);
    getApplicationContext().sendBroadcast(mediaScanIntent);
    
    return true;
    }
                    
     catch (Exception e)
       {
         e.printStackTrace();
         return false;
     }}
    

 

 


Copyright © GrapeCity inc. All rights reserved.