2012-04-26 21 views
0

私は現在、問題解決に苦労しています。私はあなたが私の解決を手伝って欲しいです。基本的に私は内部ギャラリーからいくつかの画像を取得しようとしています。このように電話する。電話のメモリから画像を読み込む(SDなし)

意図インテント=新しいインテント();

intent.setType( "image/*");

intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent、 "Select Picture")、SELECT_IMAGE);

私はウリimages_uri = data.getData()この

を用いonActivityResult方法でURIを取得します。

データ(画像はSDカードからフェッチされたときに、この事は起こりません)

どのように私はそれを解決することができ、空のですか?

また、二次的な問題として、どのようにして1つ以上の画像を取得できますか?私はACTION_SEND_MULTIPLEを使用して読んこれは、画像を取得するための場所からのメソッドの代わりの場所を送信するための選択肢を開く...

は、私の場合には、この

public static final int GALLERY_CODE = 322; 
    Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), 
      GALLERY_CODE); 


     @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { //Assinging on corresponding import 
    super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == GALLERY_CODE && resultCode == RESULT_OK) { 
     Uri selectedImageUri = data.getData(); 
     selectedImagePath = getPath(selectedImageUri); 
     try { 
      //add logic for coping file 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     } 

    } 

    public String getPath(Uri uri) { 
    String[] projection = { MediaStore.Images.Media.DATA }; 
    Cursor cursor = managedQuery(uri, projection, null, null, null); 
    int column_index = cursor 
      .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst(); 
    return cursor.getString(column_index); 
} 

答えて

0

をありがとう実際にはキャッシュリストに誤りがありました(ギャラリーには実際には存在しなかった写真が表示されていましたので、選択した場合、実際のURIはゼロになりました)。

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()))); 

それはそのデータをリフレッシュする必要がありますギャラリーを教えてくれます:あなたはACTION_GET_CONTENTの意図を呼び出す前

、私は、このコマンドを追加することをお勧めします。これを行う場合は、スレッドに短い睡眠を入れてください(例:

Thread.sleep(1000); 

)。これにより、実際に開く前にリフレッシュアクションを完了できるようになります。私の電話では、少なくとも、ギャラリーアプリの簡単なフラッシュを防ぐことができました。

+0

私は今編集されています –

+0

私はすでにこのように問題に直面していました...実際には、 "Uri selectedImageUri = data.getData();"という行に到着すると、 – kioli

+0

画像を選択するデフォルトのギャラリービューを取得したら、\ –

0

よくしてみてください、事前に

関連する問題