【androidJava】intentでbitmapを遷移させる方法

asaba 著者:asaba

【androidJava】intentでbitmapを遷移させる方法

androidではintent機能を必ずといっていいほど使います。

値を遷移させたりカメラで撮影画面に映ったりなど様々な場面で使うことが出来ます。

今回は画像をintentに持たせて遷移先でやり取りをしたかったのですが!!! FAILED BINDER TRANSACTION !!!というエラーに

ひっかかり見事に怒られてしまいました。

 

どうやらiphoneやandroidで撮影した写真や画像は加工せずに送ると重すぎるためにファイルとして扱うには不適切と見なされ

拒否されてしまうみたいです・・・。

 

少しまわりくどいですが、uriでintentに持たせbitmapに加工するという手段に落ち着きました。

とりあえず遷移先でuriを宣言していればどれだけ重い画像でも持ってこれるので同じような内容でハマっている

方は試してみてください。

 

最後にコードを掲示しておきます。

 

遷移前

<pre>Intent intent = new Intent(this, EditActivity.class);
intent.putExtra("imageUri", uri);
startActivity(intent);</pre>

 

遷移先

<pre>public void getBmp(){
    Intent intent = getIntent();
    Uri uri = intent.getParcelableExtra("imageUri");
    System.out.println(uri);
    try {
        Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
        imageView.setImageBitmap(bitmap);
    } catch (IOException e) {
        e.printStackTrace();
    }
}</pre>

 

遷移先で変数uriに“imageUri”キーを持つ値を持ってきています。

tryの中ではMediaStoreに問い合わせてuriをBitmapに変換しているところです。(ざっくりですみません)

 

  • この記事いいね! (0)

著者について

asaba

asaba author

機種依存は悪い文明