6

次のコードでわかるように、電話で選択したフォルダーからファイルを読み取っています。そして、どうすれば Imagefile でこれを機能させることができますか? 最後に、すべての画像のプレビューを含む画像リストを作成したいと思います。そのように:

[IMG] (imgview) - [ファイル名] (文字列)

        for(int i=0; i < files.length; i++) {

        File file = files[i];
            map = new HashMap<String, String>();
        if(!file.isHidden() && file.canRead()) {
            path.add(file.getPath());

            if(file.isDirectory()) {
                map.put("img_list", ""+R.drawable.folder);
                map.put("string_cell", file.getName()+"/");
                your_array_list.add(map);

            }else{


                ImageFileFilter filefilter = new ImageFileFilter(file);

                if(filefilter.accept(file)){
                   //Its an imagefile

                    // ==> I like to replace the ""+R.drawable.image with the file that I have read
                    map.put("img_list", ""+R.drawable.image);


                } else {

                    //Its not an image file

                }

                map.put("string_cell", file.getName());
                your_array_list.add(map);

            }
        } 


    }

        SimpleAdapter mSchedule = new SimpleAdapter(this, your_array_list, R.layout.connected_upload_row,
            new String[] {"img_list", "string_cell"}, new int[] {R.id.img_list, R.id.string_cell});
list.setAdapter(mSchedule);

次の画像では、プレビューとして、白い「イメージ」画像を「41786486733.jpg」という元の画像に置き換えています。ユーザーがこれが何の写真かを確認できるように...

ここに画像の説明を入力

編集 フロリアン・ピルツ

if(filefilter.accept(file)){

                    Log.v("PATH1", file.getPath() );


                    ImageView myImageView = (ImageView) findViewById(R.id.img_list);
                    Bitmap bmp = BitmapFactory.decodeFile(file.getAbsolutePath());
                    myImageView.setImageBitmap(bmp); 



                }

ここに画像の説明を入力

4

4 に答える 4

1

写真を見て、「IMAGE」というテキストの白い画像が ImageView インスタンスであると仮定すると、単純に...

Bitmap bmp = BitmapFactory.decodeFile(file.getAbsolutePath);
myImageView.setImageBitmap(bmp); 

または、私はあなたの質問を完全に誤解しましたか。とにかく、この小さな例は、あなたが達成しようとしていることと似たようなことをしようとしています。

于 2012-12-12T15:53:32.250 に答える
1

このをチェックするカスタムリストビューを実装する必要があり、ハッシュマップにパスを保存する問題が発生しているようです。エラーログの猫を提供するとさらに役立ちます! とにかく、パスをハッシュマップに保存する代わりに、以下のトリックを試して目標を達成できますか?、それがあなたに役立つことを願っています.

File file = new File(Environment.getExternalStoragePath()+"/Folder/");

    file imageList[] = file.listFiles();

     for(int i=0;i<imageList.length;i++)
     {
       Log.e("Image: "+i+": path", imageList[i].getAbsolutePath());

       Bitmap bitmap = BitmapFactory.decodeFile(imageList[i].getAbsolutePath());
        myImageView.setImageBitmap(bitmap);
于 2012-12-18T04:55:49.240 に答える
1

回答が受け入れられた同様の質問があります。チェック:SDカードに保存された画像ファイルを開けません

そこからのスニペット:

File directory = new File(extStorageDirectory, "myFolder");
File fileInDirectory = new File(directory, files[which]);
Bitmap bitmap = BitmapFactory.decodeFile(fileInDirectory.getAbsolutePath());
于 2012-12-13T17:17:34.413 に答える
0

私の問題の解決策は次のとおりです。

画像パスからサムネイルを表示するには?

customlistview を作成する必要がありました (ρяσσρєя K の助けを借りて) ありがとうございました!!

SimpleAdapter の代わりに、拡張された baseadapter クラスによってカスタム アダプターを作成します。これは簡単だと思うので、inbuildを使用する代わりにカスタムUIを作成することもできます

于 2012-12-18T07:24:35.520 に答える