2017-10-21 6 views
1
package com.example.sugandhabansal.gallerypickimage; 

import android.content.Intent; 
import android.content.res.Resources; 
import android.database.Cursor; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.drawable.BitmapDrawable; 
import android.graphics.drawable.Drawable; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.ImageView; 

public class MainActivity extends AppCompatActivity { 
    private static final int SELECTED_PIC = 1; 
    ImageView imageView; 

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


     imageView = (ImageView) findViewById(R.id.imageView); 
    } 

    public void btnClick(View v) { 
     Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(intent, SELECTED_PIC); 
    } 

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

     super.onActivityResult(requestCode, resultCode, data); 

     switch (requestCode) { 
      case SELECTED_PIC: 
       if (resultCode == RESULT_OK) { 
        Uri uri = data.getData(); 
        String[] projection = {MediaStore.Images.Media.DATA}; 

        Cursor cursor = getContentResolver().query(uri, projection, null, null, null); 
        cursor.moveToFirst(); 

        int columnIndex = cursor.getColumnIndex(projection[0]); 
        String filepath = cursor.getString(columnIndex); 
        cursor.close(); 

        Bitmap bitmap = BitmapFactory.decodeFile(filepath); 
        Drawable drawable = new BitmapDrawable(Resources.getSystem(), bitmap); 
        imageView.setBackground(drawable); 
       } 
       break; 
      default: 
       break; 
     } 
    } 
} 

Dies ist die MainActivity.java-Datei. Der Code lädt grundsätzlich ein Bild aus der Galerie und zeigt es im Bildausschnitt des Layouts an. Als ich die apk auf meinem Smartphone lief, wurde nach der Auswahl kein Bild im Bildansichtsbereich angezeigt und nach dem Debugging wurde festgestellt, dass die Bitmap gleich Null ist. Kann mir bitte jemand helfen mit diesem Problem, da ich es nicht lösen kann.bitmapFactory.decodefile gibt null als Ausgabe

+0

prüfen, was in Filepath String, Bitmap-Fabrik Kommentar und alle relevanten Code zu. Ein einfacher Toast auf Dateipfad reicht aus. – user6657161

Antwort

2
  • Stellen Sie sicher, dass der erhaltene Dateipfad ein gültiger Pfad ist.
  • Stellen Sie sicher, dass Sie berechtigt sind, auf Speicher zuzugreifen.

Wenn über die Dinge sind in Ordnung und Sie immer noch null Ergebnis erhalten, versuchen Sie folgenden Code ein:

Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri)); 
+0

Danke für die Lösung. Es hat für mich funktioniert. – Sugandha

Verwandte Themen