1

Я пытаюсь выбрать и принести изображение из галереи, я мог бы принести для версии 4.4.2, но 5.0.0 или выше он не работает.Выберите изображение из галереи с помощью Intent

Когда imageview1 щелкают:

imageview1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       Intent galeri_int = new Intent(); 
       galeri_int.setType("image/*"); 
       galeri_int.setAction(Intent.ACTION_GET_CONTENT); 
       galeri_int.addCategory(Intent.CATEGORY_OPENABLE); 


       startActivityForResult(galeri_int,44); 

       Log.d("tık","tıklandı"); 


      } 
     }); 

OnActivityResult:

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


     InputStream stream = null; 

     if(data !=null){ 

     try { 
      stream = getContentResolver().openInputStream(data.getData()); 
      bitmapx = BitmapFactory.decodeStream(stream); 
      stream.close(); 
      Bitmap resized = resize(bitmapx,1000,1000); 

      imageview.setImageBitmap(resized); 

     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     } 


    } 

Это не работает на 5.0.0 или выше, так что я должен делать?

+1

'не работает для 5.0.0 или выше'. Вы должны начать с того, что не работает. I bed первый растровый рисунок, который вы пытаетесь создать, - «null». Вы должны были сказать нам. – greenapps

+0

Изображения не видны (когда пользователь нажимает imageview1, на экране галереи изображения не видны. Просто их размер видно, что их миниатюры не видны), если я использую этот код в версиях 5.0 или выше. Наконец, мой ответ работает на все версии. На экране галереи отображаются все изображения. –

+0

Вы даже не реагируете на то, что битмап будет пустым. Вы программист? – greenapps

ответ

2

попробовать это

Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(Intent.createChooser(intent, "Choose Picture"), 1); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if(resultCode==RESULT_CANCELED) 
    { 
     // action cancelled 
    } 
    if(resultCode==RESULT_OK) 
    { 
     Uri selectedimg = data.getData(); 
     imageView.setImageBitmap(MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedimg)); 
    } 
} 
-1

Наконец, я решил мою проблему с изменением щелчка слушателя.

imageview1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 

     Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

     startActivityForResult(i,44); 

     Log.d("tık","tıklandı"); 


    } 
}); 
+1

'Я решил проблему с меняющимся клиентом. Нет. Ваш слушатель по клику тот же. Но вы изменили действие используемого намерения. Это действительно плохая идея. – greenapps

+0

Почему плохая идея? Он решил мою проблему, теперь он работает для всех версий. –

Смежные вопросы