Gerenciamento de Recursos Raw e Internacionalização em Android

No desenvolvimento Android, é comum manipular recursos armazenados em diretórios específicos, como a pasta raw para arquivos brutos e o diretório assets para dados adicionais. Este artigo demonstra como acessar recursos raw, como textos e áudio, e configurar a internacionalização para suporte a múltiplos idiomas, incluindo chinês simplificado.

  1. Layout da Atividade Principal

O layout inicial define dois botões: um para navegar ao gerenciamento de recursos raw e outro para testar a internacionailzação.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Acessar Recursos Raw"
        android:onClick="abrirRawActivity"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/i18n_label"
        android:onClick="abrirRawActivity"
        />
</LinearLayout>
  1. Atividade Princpial em Java

A classe MainActivity gerencia a navegação para a aitvidade que manipula os recursos raw.

package com.example.app_recursos;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_principal);
    }

    public void abrirRawActivity(View view) {
        Intent intent = new Intent(this, GerenciadorRawActivity.class);
        startActivity(intent);
    }
}
  1. Layout da Atividade de Gerenciamento Raw

Este layout inclui uma área de texto e botões para ler arquivos de texto e áudio do diretório raw.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container_raw"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/display_info"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Carregar Texto do Raw"
        android:onClick="carregarTexto"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Reproduzir Áudio do Raw"
        android:onClick="reproduzirAudio"
        />
</LinearLayout>
  1. Atividade de Gerenciamento Raw em Java

A classe GerenciadorRawActivity implementa a lógica para acessar e exibir recursos raw, como texto e áudio.

package com.example.app_recursos;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import java.io.IOException;
import java.io.InputStream;

public class GerenciadorRawActivity extends Activity {
    private TextView infoDisplay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_raw);
        infoDisplay = (TextView) findViewById(R.id.display_info);
    }

    public void carregarTexto(View view) {
        InputStream fluxo = getResources().openRawResource(R.raw.mensagem);
        try {
            int tamanhoFluxo = fluxo.available();
            byte[] buffer = new byte[tamanhoFluxo];
            fluxo.read(buffer);
            fluxo.close();
            infoDisplay.setText(new String(buffer));
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public void reproduzirAudio(View view) throws IOException {
        MediaPlayer player = MediaPlayer.create(this, R.raw.musica);
        player.start();
    }
}
  1. Configuração de Recursos Raw

Crie um pacote raw dentro do diretório res e adicione os arquivos necessários:

  • mensagem.txt: Um arquivo de texto com conteúdo arbitrário.
  • musica.mp3: Um arquivo de áudio para reprodução.
  1. Implementação da Internacionalização

Para suporte ao chinês simplificado, crie um pacote values-zh-rCN no diretório res com um arquivo strings.xml contendo as traduções:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">App_Recursos</string>
    <string name="i18n_label">国际化</string>
</resources>

No diretório main, crie uma pasta assets e inclua o arquivo de fonte SIMKAL.TTF para renderização de caracteres chineses. O arquivo pode ser obtido de fontes confiáveis na web.

Tags: android java XML Recursos Raw Internacionalização

Publicado em 6-22 19:41