2012-04-14 12 views
0

こんにちは、私はかなりAndroidのプログラミングに新しいですが、これはいくつかのための簡単な問題かもしれませんが、私はこれにかなり新しいです。私は1つの意図からギャラリーを開きたいが、撮像した画像は別の意図に表示したい私は、次のコードを使用ギャラリー画像を取得する

public class GalActivity extends Activity { 
    Context ctx; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     imageView = (ImageView) findViewById(R.id.result); 
    } 

    private static final int REQUEST_CODE = 1; 
    protected Bitmap bitmap; 

    private ImageView imageView=null; 

    /** Called when the activity is first created. */ 
    // @Override 

    public void pickImage(View View) { 
     Intent intent = new Intent(); 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
     intent.addCategory(Intent.CATEGORY_OPENABLE); 
     startActivityForResult(intent, REQUEST_CODE); 
    } 

    // ctx=this; 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) 
      try { 
       // We need to recyle unused bitmaps 
       if (bitmap != null) { 
        bitmap.recycle(); 
       } 
       InputStream stream = getContentResolver().openInputStream(
         data.getData()); 
       bitmap = BitmapFactory.decodeStream(stream); 
       stream.close(); 

       imageView.setImageBitmap(bitmap); 

      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
} 

画像は、同じ趣旨に表示される場合は、コードが正常に動作します。 「activity2」という別の意図で表示する必要がある場合はどうすればよいですか。

答えて

0

ビットマップがParcelableインタフェースを実装しているように、あなたが直接意思を通してそれを送るので、あなたのonActivityResultコードに次の操作を行うことができます。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) 
     try { 
      // We need to recyle unused bitmaps 
      if (bitmap != null) { 
       bitmap.recycle(); 
      } 
      InputStream stream = getContentResolver().openInputStream(
        data.getData()); 
      bitmap = BitmapFactory.decodeStream(stream); 
      stream.close(); 

      imageView.setImageBitmap(bitmap); 

      Intent intent= new Intent(this, SecondActivity.class); 
      intent.putExtra("BitmapImage", bitmap); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    super.onActivityResult(requestCode, resultCode, data); 
} 

と別のアクティビティで、このBitmapオブジェクトを読むことによって:

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage"); 
+0

thnks help.iのためにこれを試してみましたが、問題は、私はこれを実行するたびに、私はネット上でそれについて多くを読み、大きなファイルを解析できないと私は保存する必要があることを発見した.Iログ「エラー配布結果」を得ることですしていますそれはグローバル変数の中にあります。しかし、私はそうすることができません。あなたがそれを例に挙げてくれれば助かります。 – ritika

関連する問題