2014-12-02 74 views
0

我的活動有2個按鈕,一個用於相機,另一個用於將數據發送到服務器,問題是當我關閉應用程序時,無法在ImageView上設置新圖像,當我拍照時,我無法使用「發送」按鈕。我需要找到一種方式,當我拍照時,我仍然可以使用我的其餘活動,我只是想設置imageView以查看我從相機獲得的圖像,並且當我關閉應用程序時,我想要能夠設置一張新照片(它不斷給我一個空白imageView)。Android應用程序未在ImageView上設置圖像

在這裏,我初始化相機。

button2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       try { 
        if (cameraIntent.resolveActivity(getPackageManager()) != null) { 
         startActivityForResult(cameraIntent, CAMERA_REQUEST); 
        } 
       } catch (Exception e) { 
        System.out.println(e.getMessage()); 
       } 

      } 

     }); 

在這裏我設置imageView與我從相機得到的位圖。

protected void onActivityResult(int requestCode, int resultCode, final Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     setContentView(R.layout.comprovante_geral); 
     final ImageView photo_view = (ImageView) findViewById(R.id.photo_view); 

     if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 
      Bundle extras = data.getExtras(); 
      Bitmap imageBitmap = (Bitmap) extras.get("data"); 
      photo_view.setImageBitmap(imageBitmap); 
     } 
+0

你確定這條線嗎Bitmap imageBitmap =(Bitmap)extras.get(「data」);'?這是不太可能的相機意圖爲您提供真正的位圖 – Blackbelt 2014-12-02 13:17:15

+0

檢查:http://stackoverflow.com/questions/27033650/cant-get-the-image-from-gallery-using-fragment/27033852#27033852 – 2014-12-02 13:17:44

+0

我有另一種做法是,photo_view.setImageURI(data.getData());但仍然沒有。 – 2014-12-02 13:19:21

回答

0

用下面的代碼替換這個onActivityResult方法。

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == 1 && resultCode == RESULT_OK) 
    {    
    Uri selectedImageUri = data.getData(); 
    String imagepath = getPath(selectedImageUri); 
    File imageFile = new File(imagepath); 
    } 
} 
public String getPath(Uri uri) 
{ 
    String[] projection = { MediaStore.Images.Media.DATA }; 
    Cursor cursor = getContentResolver().query(uri, projection, null, null, null); 
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst();     
    int columnIndex = cursor.getColumnIndex(projection[0]); 
    String filePath = cursor.getString(columnIndex); 
    cursor.close();   
    yourSelectedImage = BitmapFactory.decodeFile(filePath); 
    return cursor.getString(column_index); 
} 

我希望這可以幫助你。

+0

什麼都沒發生:( – 2014-12-02 13:57:42

+0

我已經編輯了答案檢查再次 – 2014-12-02 17:51:55

+0

仍然沒有,「imagePath」是一個字符串?而「yourSelectedImage」是一個位圖? – 2014-12-03 10:26:06

相關問題