2011-12-20 10 views
0

SDCardにある特定のフォルダの画像がロードされているギャラリー/ gridviewを作成しようとしています。フォルダへのパスは( "mnt/sdcard/iWallet/Images")知られていますが、私がオンラインで見た例では、画像をロードしたい画像フォルダへのパスを指定する方法や場所が不明です。私は数十のチュートリアル、developer.android.comのHelloGridViewチュートリアルでさえ読んでいますが、それらのチュートリアルでは私が何を求めているか教えていません。sdcardの特定のフォルダから画像をロードしますか?

私がこれまで読んだことがあるすべてのチュートリアルがあり、次のいずれか

A)は/ resをフォルダからDrawableのように画像と呼ばれ、全くSDカードを使用していない、ロードされるように配列にそれらを置きます。

B)は、メディアストアを使用したが、私はイメージが

または

Cを形成し、表示するフォルダへのパスを設定する方法を指定していないSDカード上のすべての画像にアクセスした)I避難所BitmapFactoryを、使用推奨ちょっとした手がかりをどのように使うか。

私が間違った方法でこれをやっているなら、私に何をしようとしているのかを私に教えてください。

私の目標のAndroid SDKのバージョン1.6 ...

おかげで..いくつかのデバイスではそれがあるので、あなたは、SDカードのディレクトリにアクセスするための固定パスを言及する間違っている実際

+0

チェックこれは、http: //stackoverflow.com/a/7304011/603744 –

+0

Hiren Dabhiから:http://mobile.dzone.com/news/displaying-images-sd-card –

+0

http://mobile.dzone.com/news/displaying- images-sd-card –

答えて

5

あなたは直接ImageViewの上で設定することができ、あなたにビットマップオブジェクトを与えるdecodeFile (String pathName)からビットマップを作成することができます

更新:以下は、あなたのニーズに合わせて、それを修正するマイナーなエラーが発生したsudoのコードである

File path = new File(Environment.getExternalStorageDirectory(),"iWallet/Images"); 
if(path.exists()) 
{ 
    String[] fileNames = path.list(); 
} 
for(int i = 0; i < fileNames .length; i++) 
{ 
    Bitmap mBitmap = BitmapFactory.decodeFile(path.getPath()+"/"+ fileNames[i]); 
    ///Now set this bitmap on imageview 
} 
+0

更新された回答を見る – ingsaurabh

+0

+1私が実装する必要がある場合、私はこの答えに行くでしょう。 –

+0

ありがとうございました.. – Selva

2

を/ mnt/sdcardその他/sdcardです。

したがって、SDカードのルートディレクトリにアクセスするには、getExternalStorageDirectory()を使用すると、ルートディレクトリの実際のパスが得られます。

+3

k Paresh Mayani..thanks ur reply .. – Selva

0

File Javaクラスを使用してディレクトリにアクセスし、そこにあるすべてのファイルを繰り返し、Bitmapfactory.decodeFile()を使用して各ファイルのビットマップを作成し、ギャラリーにビットマップを追加します。

1

この機能を使用すると、ウルフォルダ

public static List getFilesFromDir(File aStartingDir) 
{ 
    List result = new ArrayList(); 
     File[] filesAndDirs = aStartingDir.listFiles(); 
    List filesDirs = Arrays.asList(filesAndDirs); 
    Iterator filesIter = filesDirs.iterator(); 
    File file = null; 
    while (filesIter.hasNext()) { 
     file = (File)filesIter.next(); 
     result.add(file); //always add, even if directory 
     if (!file.isFile()) { 
     //must be a directory 
     //recursive call! 
     List deeperList = getFileListing(file); 
     result.addAll(deeperList); 
     } 

    } 
    Collections.sort(result); 
    return result; 
    } 

BitmapDrawable d = new BitmapDrawable(getResources(), path+".jpg"); // path is ur resultant //image 
img.setImageDrawable(d); 

までのパスを渡す必要があり、特定のフォルダからすべてのファイルが、それはuのを助けるホープresturnう...

関連する問題