2012-03-10 17 views
0

私はイメージのURLを持っています。 私はそれの.JPEGファイルを作成し、SDカードのディレクトリに保存しています。イメージをダウンロードしてアンドロイドでダウンロードしてください。

ビットマップを作成してJPEGで圧縮したすべてのイメージをダウンロードした後、私はそのディレクトリにダウンロードされたすべてのイメージを表示するはずの別のインテントを呼び出しています。

でも空白が表示されています。

私はDDMSを不正確にして、正しいサイズのjpegが私の望むディレクトリにダウンロードされていることを発見しました。しかし、私の意図は見えていません。

驚いたことに、エミュレータを閉じると再起動し、別のイメージリンクを使用してプログラムを再実行します。これで、以前にダウンロードしたイメージが表示されます! (このプログラムの実行でダウンロードされた画像ではありません)。

ダウンロードした画像を表示するために使用するコードは次のとおりです。 誰もがこれを手伝ってくれますか? OK

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.imagechooser); 


     Bundle bundle = this.getIntent().getExtras(); 
     thumbNailsLnkdhs = (LinkedHashSet<String>) bundle.getSerializable("keyThumbNails"); 

     Toast.makeText(getApplicationContext(), 
       "ThumbNailsLnkdhs size in new intent: "+thumbNailsLnkdhs.size(), Toast.LENGTH_LONG).show(); 

     final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID }; 
     final String orderBy = MediaStore.Images.Media._ID; 


     Cursor imagecursor=managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       columns, 
        MediaStore.Images.Media.DATA + " like ? ", 
        new String[] {"%myDesiredDirectory%"}, 
        null); 

     Log.d(LOGGER, "cursor made"); 
     int colcount=imagecursor.getColumnCount(); 
     //.d(LOGGER, "cursor column count is: "+colcount); 

     int count =imagecursor.getCount(); 
     //Log.d(LOGGER, "count is: "+count); 

     String colnAME=imagecursor.getColumnName(0); 
     //Log.d(LOGGER, "COL NAME FOR 0TH COLUMN="+colnAME); 
     String colnAME_1=imagecursor.getColumnName(1); 
     //Log.d(LOGGER, "COL NAME FOR 1st COLUMN="+colnAME_1); 


     int image_column_index = imagecursor.getColumnIndex(imagecursor.getColumnName(1)); 
     //Log.d(LOGGER, "image_column_index="+image_column_index); 

     //Log.d(LOGGER, "ThumbNailsLnkdhs size: "+ThumbNailsLnkdhs.size()); 

     //int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID); 


     this.count = imagecursor.getCount(); 
     //Log.d(LOGGER, "this.count="+this.count); 

     this.thumbnails = new Bitmap[this.count]; 
     this.arrPath = new String[this.count]; 
     this.thumbnailsselection = new boolean[this.count]; 

     for (int i = 0; i < this.count; i++) { 
      imagecursor.moveToPosition(i); 
      int id = imagecursor.getInt(image_column_index); 
      int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA); 
      //Log.d(LOGGER, "dataColumnIndex="+dataColumnIndex); 

      thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail(
        getApplicationContext().getContentResolver(), id, 
        MediaStore.Images.Thumbnails.MICRO_KIND, null); 

      arrPath[i]= imagecursor.getString(dataColumnIndex); 
     } 
     GridView imagegrid = (GridView) findViewById(R.id.PhoneImageGrid); 
     imageAdapter = new ImageAdapter(); 
     imagegrid.setAdapter(imageAdapter); 
     imagecursor.close(); 
    } 

は、ANSR以下の提案あたりのように、 は、私はその物理的なファイルを作成した後、ギャラリーに画像を挿入する必要がありました。

私は

MediaStore.Images.Media.insertImage(getContentResolver(), bitmapimage, 
imgname+ ".jpg Card Image", "imgDescription" 
+ ".jpg Card Image"); 

を試みたが、物理的なファイルではなく旅館・アクティビティを作成しダウンロード、クラスでイムとしてgetcontentresolver使用couldntの。

は、だから私は、以前にダウンロードした画像を表示する私の活動の

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

を試してみました...しかし、それはdidntは、新たにダウンロードした画像を表示するために私を助けた... はそう

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" 

       + Environment.getExternalStorageDirectory()+))); 

    this also not showing new images :(

を試みた缶だれでもこれで私を助けてください?

答えて

0

DDMSを使用してイメージを手動でAVDに入れると、設定からメディアをスキャンする必要がありますか?

同じ問題がここに

ダウンロードした後、あなたは、コードを介してメディアをスキャンして、設定されたアダプタ前の画像にカーソルをクローズする必要があります。

+0

ありがとう!特定のディレクトリだけをスキャンする方法はありますか? – adityag

+0

今私は自分の活動から特定の指示をスキャンする方法を探しています。 – adityag

0

新しいImageAdapterを作成し、GridViewをその '新しい'アダプタに接続します。つまり、新しい空白のアダプタに接続されると、GridViewは空になるようにバインドされます。

ここで、ビットマップ/カーソルをアダプタ/ビューに接続していますか?

関連する問題