2011-12-13 6 views
22

アセットのフォルダへの絶対パスを取得する必要があります。 SDカードのため、このようないくつかは:android assetManager

final String sdDir = Environment.getExternalStorageDirectory() + "Files"; 

私が間違って何?

enter image description here

まず私が(緑ractangleで)このようにパスを取得しようとするが、私は「偽」を取得alwase。 次に、このブロックをコメントし、getAssets()からパスを取得しようとします。 しかし私は最初に見る3つの魔法使いを得る。

私は「緑」は、このような大規模にしたいが、私は、資産からのファイルを使用する必要があります。

Look the image

は私Filesフォルダへの絶対パスを取得するために私を助けて。

+0

[画面を見て](http://my.jetscreenshot.com/10682/20111213-pxu2-587kb.jpg) "green"のようなものですが、SDカードではないアセットのファイルを使用していますか? – Val

答えて

15

私はあなたが何をしようとしているのかよくわからないので、私はベースをカバーしようとします。

  • あなただけgetAssets().list("Files")を使用 そして、あなたの資産に何のリストを取得しようとしている場合。 (thisのためにサブディレクトリ を使用する必要があります)。あなたの資産ディレクトリ (または任意のサブディレクトリ)に絶対パスを取得しようとしている場合

  • 、あなたがすることはできません。アセットディレクトリ にあるものはすべてAPKにあります。 SDカードのような外部ストレージにはありません。

  • アセットディレクトリでファイルを開く場合は、 AssetManager.open(filename)を入力してInputStreamを取得してください。ここでは、 filenameはassetsディレクトリからの相対パスである必要があります。


EDIT

私はあなたが「大規模な」によって何を意味するかわからないんだけど、あなたが代わりにSDカードの資産からファイルblack.pngをロードしたい場合は、これを書きます:同じ大規模な作成方法

// must be called from Activity method, such as onCreate() 
AssetManager assetMgr = this.getAssets(); 
mColors = new Bitmap[] { 
    BitmapFactory.decodeStream(assetMgr.open("black.png")); 
    // and the rest 
}; 
+0

[画面を見る](http://my.jetscreenshot.com/10682/20111213-pxu2-587kb.jpg) 「緑色」のような大規模な作成方法はありますが、sd-cardではないアセットのファイルを使用する方法は? – Val

1

アセットはAPKファイルに保存されるため、アプリケーションで使用できる絶対パスは存在しません。しかし、私はfile:/// android_assetを見てみることをお勧めします。あなたのニーズに合っているかもしれません。 WebViewにアセットを表示する方法については、Here is a good exampleを参照してください。

+0

このフォルダから画像とサウンドを使用するには、このパスをFilesフォルダに必要とします。この例を使用してこれを行うにはどうすればよいですか?それはWebViewとURLを使用し、絶対パスは使用しませんでした。 – Val

関連する問題