2017-12-22 19 views
1

私はすべてを試して、多数のstackoverflow投稿を見ましたが、私はこれに対する解決策を見つけることができません。ビットマップがイメージビューに設定されていません

私は主なアクティビティでselect imageというボタンを押すことができるmemeジェネレータを作成しています。これは私が私が選ぶことができる多くの写真が提示されている別の活動に私を連れて行くでしょう。私は画像をクリックして、それを主なアクティビティに戻して、そのミームがあると思われる画像ビューに表示したいと思っています。

は、これが主な活動のために私のコードです:

public void openImageLibrary() { 
    // ImageLibrary is the class where I code the stuff for the other 
    // activity 
    Intent intent = new Intent(this, ImageLibrary.class); 
    startActivityForResult(intent, 0); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    // result for when select is pressed and user has chosen empty meme 
    if(requestCode == 0 && resultCode == RESULT_OK && data != null) { 
     Bitmap meme = (Bitmap) getIntent().getParcelableExtra("image"); 


     // Below, memeImage is the ImageView for the main activity 
     ImageView imageView = (ImageView) findViewById(R.id.memeImage); 
     imageView.setImageBitmap(meme); 
    } 
} 

そして、これは私の他の活動のためのコードです:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_image_library); 
} 

public void selectImage(View view) { 
    Intent intent = new Intent(); 


    view.setDrawingCacheEnabled(true); 


    view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
      MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
    view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); 

    view.buildDrawingCache(true); 
    Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); 
    view.setDrawingCacheEnabled(false); // clear drawing cache 



    intent.putExtra("image", bitmap); 
    setResult(RESULT_OK, intent); 
    finish(); 
} 
+0

POSTエラー –

+0

@RahulKhuranaごめんなさい、私はそれを忘れていました。私は最初の答えが言っていることをやろうとしましたが、エラーの答えにコメントしました。コメントを見てください! – Zelda

答えて

2

他の活動では、以下の

public void openImageLibrary() { 
    // ImageLibrary is the class where I code the stuff for the other 
    // activity 
    Intent intent = new Intent(this, ImageLibrary.class); 
    startActivityForResult(intent, 0); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    // result for when select is pressed and user has chosen empty meme 
    if(requestCode == 0 && resultCode == RESULT_OK && data != null) { 
     byte[] byteArray = getIntent().getByteArrayExtra("image"); 
    Bitmap meme = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 


     // Below, memeImage is the ImageView for the main activity 
     ImageView imageView = (ImageView) findViewById(R.id.memeImage); 
     imageView.setImageBitmap(meme); 
    } 
} 

試してみてください

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_image_library); 
    } 

    public void selectImage(View view) { 
     Intent intent = new Intent(); 


     view.setDrawingCacheEnabled(true); 


     view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
     view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); 

     view.buildDrawingCache(true); 
     Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); 
     view.setDrawingCacheEnabled(false); // clear drawing cache 

    //Convert to byte array 
ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
byte[] byteArray = stream.toByteArray(); 

     intent.putExtra("image", byteArray); 
     setResult(RESULT_OK, intent); 
     finish(); 
    } 
+0

以前と同じエラーが発生しています。画像を選択すると、画像が大きくなり、他のアクティビティの画面に残ります。これをデバッグしようとすると、「Android API 26のソースが見つかりません」というエラーが表示されます。また、「ソースコードがバイトコードと一致しません」というエラーが表示されます。私がデバッガを続行すると、最終的にヌル配列の長さを取得しようとしたというエラーが表示され、結果を出力することができませんでした(主なアクティビティに戻って意図が動作しなかったと思います) – Zelda

+0

あなたは与えられたリンクの設定を構成する必要がありますhttps://stackoverflow.com/questions/36814755/sources-for-android-api-23-platform-not-found-android-studio-2-0 あなたが持っている148の投票での答えapi 26パッケージで同じことをする –

関連する問題