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.
- 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>
- 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);
}
}
- 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>
- 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();
}
}
- 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.
- 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.