2017-10-06 65 views
0

我請從庫圖像,並採取通過camera.The代碼圖像被以下:圖像串數據發送到下一個活動

ib2 = (ImageButton) findViewById(R.id.imageButton2); 
     ib2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(cameraIntent, CAMERA_REQUEST); 
      } 
     }); 


private static final int PICK_IMAGE = 150; 
    Uri imageUrl; 

    private void openGallery() { 

     Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
     startActivityForResult(intent, PICK_IMAGE); 
    } 

    @Override 
    protected void onActivityResult(int requestcode, int resultcode, Intent data) { 
     super.onActivityResult(requestcode, resultcode, data); 
     if (resultcode == RESULT_OK && requestcode == PICK_IMAGE) { 
      imageUrl = data.getData(); 
      try { 

       Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),imageUrl); 
       // Log.d(TAG, String.valueOf(bitmap)); 

       ImageView imageView = (ImageView) findViewById(R.id.imageView); 
       imageView.setImageBitmap(bitmap); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      // im.setImageURI(imageUrl); 

     } 
     if (requestcode == CAMERA_REQUEST && resultcode == RESULT_OK) { 
      Bitmap photo; 
      photo = (Bitmap) data.getExtras().get("data"); 
      im.setImageBitmap(photo);//set image to Imageview 


     } 
    } 

然後試圖將此圖像轉換成底座64的字符串。代碼如下:

private String imageToString(){ 
     Bitmap photo = null; 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     photo.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
     byte[] imageBytes = baos.toByteArray(); 
     String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); 
     return encodedImage; 
} 

然後將數據發送到另一個活動。代碼如下:

Intent next = new Intent(MainActivity.this, EventAdding.class); 

         Bundle bn = new Bundle(); 
         bn.putString("image", imageToString()); 
    startActivity(next); 

問題是我無法同步所有這些程序。轉換圖像字符串數據不會完美地發送到下一個活動。圖像數據不會發送。當我試圖展示圖片時,會顯示一張空白圖片。請告訴我正確的代碼

回答

0

,你可以從一個活動發送圖像使用下面的代碼的其它活動..

Bitmap bitmap = youimage 
Intent intent = new Intent(this, SecondActivity.class); 
intent.putExtra("image", bitmap); 
startActivity(intent); 

現在這樣的secondActivity獲得圖像。

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("image"); 

然後在ImageView中顯示位圖。

+0

我如何選擇的圖像發送到()method.I我無法設置這個鏈接了imageToString。請幫幫我。 –

+0

當你從圖庫中選擇圖片,然後轉換成位圖,並通過我添加的代碼發送它 –

+0

它不是imageToString它將位圖圖像從一個活動傳遞給其他活動 –

0

可以使用intent.getParcelableExtra(key)方法

相關問題