Xuni コントロール > FlexPie > 機能 > 画像のエクスポート |
後で使用できるように、FlexPie コントロールの画像を簡単に取得しておくことができます。画像は保存したり、他の人とシェアすることができます。アプリケーションに追加コードをいくつか付け加えて、定義済みの場所に画像を取得します。
次のコード例では、「クイックスタート」セクションで作成したサンプルを使用します。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; |
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; }} |