2012-04-03 4 views
0

Androidでアプリケーションを作成しています.1つのアクティビティからビットマップオブジェクトを送信し、2番目のアクティビティページに送信したビットマップオブジェクトを表示する必要があります。しかし、私は空白の画面を取得しています。ここアクティビティを読み込んだ後にアンドロイドでimageViewオブジェクトを変更する

は、Bitmapオブジェクトを送信するための私のコードのサンプルです: -

Intent intent = new Intent(Display2.this, Display3.class); 
ImageView iv = (ImageView) findViewById(R.id.imageView1); 
Bitmap bitmap = Bitmap.createBitmap(iv.getWidth(), iv.getHeight(), Bitmap.Config.RGB_565); 
intent.putExtra("BitmapImage", bitmap); 
startActivity(intent); 

今第二の活動上のコードの一部が送信されたオブジェクトを取得すると、それを表示します画面: - いただきました!間違っ

public class Display3 extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     Bitmap bitmap = (Bitmap)getIntent().getParcelableExtra("BitmapImage"); 
     ImageView myIV = (ImageView) findViewById(R.id.imageView1); 
     bitmap = bitmap.createBitmap(myIV.getWidth(), myIV.getHeight(), Bitmap.Config.RGB_565); 
     myIV.setImageBitmap(bitmap); 
     setContentView(R.layout.display3); 

    } 
} 

は、誰もがこの部分に提案することができますか?

ありがとうございます!

答えて

3

ビットマップはParcelableオブジェクトを実装して、あなたは常に以下のような目的でそれを渡すことができます。

Intent intent = new Intent(this, NewActivity.class); 
intent.putExtra("BitmapImage", bitmap); 

ともう一方の端にそれを取得する:これは、ビットマップを渡すために良いではありません

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

greate maulik !!!! –

+0

しかし、提案された変更を加えると、コードにエラーが表示されます –

+0

ビットマップがビットマップオブジェクトに正常に作成されたかどうかを確認してください –

2

単純に名前を静的にすることができます。私たちは、ビットマップを渡すためのインテントを使用する場合 、我々はいくつかのエラーから、この質問How to pass bitmap from one activity to another

1

をチェックしてしまいます、

bitmapexistingclass.getBitmap(); 

、その後
public static Bitmap getBitmap(){ 
    return bitmap; 
} 

あなたは、単に他の活動から呼び出すことができるような方法を作成上記のコードで空のビットマップを作成しています:

ImageView iv = (ImageView) findViewById(R.id.imageView1); 
Bitmap bitmap = Bitmap.createBitmap(iv.getWidth(), iv.getHeight(), Bitmap.Config.RGB_565); 

私は、あなたがBitmap自体に描画を埋めるためにアンドロイドから期待しているものを、このコードから、あなたが何かを得るでしょう、なぜどのような理由は、その後絶頂と幅の空白黒のビットマップはImageViewのの絶頂と幅

+0

変更を行った後、アクティビティを開始できません:( –

+0

)変更したコードを書き、スタックトレースログにアクセスします - 多分私はそれを助けることができます –

0

に等しいが表示されませんImageViewオブジェクトに等しい高さと幅を持つ空のBitmapObjectを作成しています。 としてビットマップを実装する

0

ビットマップを文字列に変換するには、以下の2つの方法を使用します。逆も同様です。その後、インテントを含む文字列をアクティビティから別のアクティビティに渡すことができます。私も自分のアプリケーションで同じことをします。 その後、ParcelableExtraクラスとserialzableクラスを使用する必要はありません。

public String convertBitmapToString(Bitmap src) { 
if(src!= null){ 
ByteArrayOutputStream os=new ByteArrayOutputStream(); 
src.compress(android.graphics.Bitmap.CompressFormat.PNG, 100,(OutputStream) os); 
byte[] byteArray = os.toByteArray(); 
return Base64.encodeToString(byteArray,Base64.DEFAULT); 
} 
return null;    
} 

public Bitmap getBitMapFromString(String src){ 
Bitmap bitmap = null; 
if(src!= null){ 
byte[] decodedString = Base64.decode(src.getBytes(), Base64.DEFAULT); 
bitmap = BitmapFactory.decodeByteArray(decodedString,0,decodedString.length); 
return bitmap; 
} 
return null; 
} 
関連する問題