58

J2ME では、次のようにしました。 getClass().getResourceAsStream("/raw_resources.dat");

しかし、Androidでは、これで常にnullになります。なぜですか?

4

8 に答える 8

133

raw ファイルの場合は、res ディレクトリ内に raw フォルダーを作成してgetResources().openRawResource(resourceName)から、アクティビティから呼び出すことを検討する必要があります。

于 2010-05-18T10:53:17.377 に答える
26
InputStream raw = context.getAssets().open("filename.ext");

Reader is = new BufferedReader(new InputStreamReader(raw, "UTF8"));
于 2010-05-18T17:56:29.087 に答える
15

場合によっては、生成された ID の代わりに画像名を使用して、drawable または raw フォルダーから画像を取得する必要があります。

// Image View Object 
        mIv = (ImageView) findViewById(R.id.xidIma);
// create context Object for  to Fetch  image from resourse 
Context mContext=getApplicationContext();

// getResources().getIdentifier("image_name","res_folder_name", package_name);

// find out below example 
    int i = mContext.getResources().getIdentifier("ic_launcher","raw", mContext.getPackageName());

// now we will get contsant id for that image       
        mIv.setBackgroundResource(i);
于 2012-06-05T12:51:16.277 に答える
6
TextView txtvw = (TextView)findViewById(R.id.TextView01);
        txtvw.setText(readTxt());

 private String readTxt()
    {
    InputStream raw = getResources().openRawResource(R.raw.hello);

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

    int i;
    try
    {
        i = raw.read();
        while (i != -1)
        {
            byteArrayOutputStream.write(i);
            i = raw.read();
        }
        raw.close();
    }
    catch (IOException e)
    {
        // TODO Auto-generated catch block

        e.printStackTrace();
    }


    return byteArrayOutputStream.toString();

}

TextView01:: linearlayout 内の txtview hello:: res/raw フォルダー内の .txt ファイル (その他のフォルダーにも同様にアクセスできます)

2行はonCreate()メソッドで書かれた2行です

残りはアクティビティを拡張するクラスで記述します!!

于 2010-07-02T10:15:03.003 に答える
5

getClass().getResourcesAsStream()Androidで正常に動作します。開こうとしているファイルが APK に正しく埋め込まれていることを確認してください (APK を ZIP として開きます)。

通常、Android では、そのようなファイルをassetsディレクトリに配置します。したがって、プロジェクトraw_resources.datのサブディレクトリに配置すると、最終的に APK のディレクトリになり、次を使用できます。assetsassets

getClass().getResourcesAsStream("/assets/raw_resources.dat");

assetsファイルがAPKのディレクトリに配置されないように、ビルド プロセスをカスタマイズすることもできます。

于 2014-02-04T22:07:05.380 に答える