58 votes

Android comment avoir accès aux ressources brutes que je mets dans le dossier res?

En J2ME, j'ai fait ça comme ça: getClass().getResourceAsStream("/raw_resources.dat");

Mais dans Android, je suis toujours nul, pourquoi?

133voto

Samuh Points 16564

Pour les fichiers bruts, vous devriez envisager de créer un dossier brut dans le répertoire res, puis appeler getResources().openRawResource(resourceName) partir de votre activité.

26voto

Adrian Vintu Points 268
InputStream raw = context.getAssets().open("filename.ext");

Reader is = new BufferedReader(new InputStreamReader(raw, "UTF8"));

15voto

sravan Points 2403

Dans certaines situations, nous devons obtenir une image d'un dossier pouvant être dessiné ou brut en utilisant le nom de l'image si l'identifiant généré

 // 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);
 

6voto

poojan9118 Points 672
 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 :: txtview in linearlayout hello :: fichier .txt dans le dossier res / raw (vous pouvez accéder à un autre dossier en tant que wel)

Les deux premières lignes sont écrites dans la méthode onCreate ()

le reste doit être écrit en classe, prolongeant l'activité !!

5voto

0xF Points 149

getClass().getResourcesAsStream() fonctionne très bien sur Android. Juste assurez-vous que le fichier que vous essayez d'ouvrir est correctement intégré dans votre APK (ouvrir l'APK ZIP).

Normalement sur Android vous placez ces fichiers dans l' assets répertoire. Donc, si vous mettez l' raw_resources.dat dans la assets sous-répertoire de votre projet, il sera à la fin de l' assets répertoire dans l'APK et vous pouvez utiliser:

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

Il est également possible de personnaliser le processus de construction de sorte que le fichier n'est pas la terre dans l' assets répertoire dans le APK.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X