Androidでアセットを開く方法

Androidフレームワークは、プログラムが実行する必要のあるタスクに多くのオプションを提供し、AssetManagerクラスは、実行時にプロジェクトがプログラムにバイトをストリーミングするために通常使用するリソースの代替手段を提供します。Resourcesの代わりにAssetManagerを使用すると、Androidフレームワークが解析できないカスタム形式を入力でき、Javaプログラマーに馴染みのあるInputStreamクラスを使用してオブジェクトをインスタンス化できます。AssetManagerインターフェースはシンプルで効率的で、数行のコードしか必要としません。

1

Androidプロジェクトのルートフォルダーを右クリックし、[新しいフォルダー]をクリックします。フォルダに「assets」という名前を付け、「Finish」をクリックします。

2

デスクトップでファイルブラウザを開き、「Ctrl」キーを押しながらクリックして、プログラムにストリーミングするファイルを選択します。「Ctrl-C」を押して、ファイルをクリップボードにコピーします。プロジェクトの「assets」フォルダー(作成したフォルダー)をクリックし、「Ctrl-V」を押してファイルを貼り付けます。

3

次の行を追加して、コードでAssetManagerをインスタンス化します。

AssetManager am = getContext()。getAssets();

AssetManagerを使用する必要がある直前にこの行を追加するか、複数のメソッドで使用する場合は、メンバー変数として保持します。これを行うには、メソッドの外部で変数を宣言し、コンストラクターでインスタンス化します。

4

tryブロック内でInputStreamオブジェクトをインスタンス化して、assetsフォルダー内のファイルを開きます。たとえば、次のように入力します。

InputStreamは= null; {is = am.open(“ file_name.xyz”);を試してください。} catch(FileNotFoundException ex){}

「file_name.xyz」を、二重引用符で囲んだファイルの名前とその拡張子に置き換えます。

5

InputStreamオブジェクトの「read」メソッドを呼び出して、入力ストリームからのバイトを保持するバイトバッファを作成します。次のようなコードでバッファにメモリを割り当てます。

int size = is.available(); byte [] buffer = new byte [size]; is.read(buffer);

6

入力ストリームのバイトを使用してオブジェクトをインスタンス化します。たとえば、Java Stringクラスには、次のコードで直接インスタンス化できるバイト配列パラメーターを持つコンストラクターがあります。

文字列文字列=新しい文字列(バッファ);

定義したクラスのバイトを読み取る場合は、バイト配列を引数として取るコンストラクターを追加します。