Praktikum 5 – Menambahkan Resource File ke Project

Pada praktikum kali ini akan dicoba menambahkan Resource File ke Project untuk memudahkan penyimpanan tipe file tertentu. Terdapat 2 jenis Resource File yaitu Raw dan Asset.

Raw files disimpan di direktori /res/raw. Resource Raw files diakses dengan raw identifier yaitu R.raw.<resource>. Resource Raw tempat yang bagus untuk menyimpan file multimedia seperti MP3, MP4, dan file – file OOG.

Asset files membuat file system yang dicompile di APK dan tidak membutuhkan resource ID. Asset files diakses melalui nama filenya, biasanya digunakan untuk file yang diberi nama secara dynamic (sesuai dengan format tertentu). Beberapa API tidak support Resource Identifier sehingga dibutuhkan direktori tambahan yaitu Asset.

Project baru dibuat dengan nama ReadingResourceFiles dengan menggunakan minimal API level 22 atau Android 5.1 (lolipop). Setelah membuat project baru, direktori raw dibuat didalam folder res sehingga berlokasi res/raw, kemudian di dalam direktori raw dibuat file baru dengan nama raw_text.txt. Setelah itu folder asset dibuat dengan klil menu file atau klik kanan pada icon app di folder navigation, pilih new -> Folder -> Assets Folder. Kemudian di dalam folder assets dibuat file baru yaitu asset_text.txt. Struktur direktori dan file yang dibuat kurang lebih sebagai berikut:

Package – package yang dibutuhkan pada MainActivity.java :

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

Menambahkan method getText pada MainActivity.java:

private String getText(InputStream inputStream){
    StringBuilder stringBuilder = new StringBuilder();
    try {
        if(inputStream != null){
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String newLine = null;
            while((newLine = bufferedReader.readLine()) != null){
                stringBuilder.append(newLine+"\n");
            }
            inputStream.close();
        }
    } catch (java.io.IOException e){
        e.printStackTrace();
    }
    return stringBuilder.toString();
}

method onCreate pada MainActivity.java ditambahkan menjadi:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView textViewRaw = findViewById(R.id.textViewRaw);
    textViewRaw.setText(getText(this.getResources().openRawResource(R.raw.raw_text)));

    TextView textViewAsset = findViewById(R.id.textViewAsset);
    try{
       textViewAsset.setText(getText(this.getAssets().open("asset_text.txt")));
    } catch (IOException e){
        e.printStackTrace();
    }
}

Tampilan yang dibuat pada activity_main.xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:id="@+id/textViewRaw"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center_horizontal|center_vertical"/>
    <TextView
        android:id="@+id/textViewAsset"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center_horizontal|center_vertical"/>
</LinearLayout>

Terakhir pada asset_text.txt dan raw_text.txt diisi dengan beberapa kata atau kalimat untuk ditampilkan.

Running Aplikasi yang dibuat:

Kalimat atas diambil dari raw_text.txt dari Resource Raw dan kalimat bawah dari asset_text.txt dari Resource Asset.

Leave a Reply

Your email address will not be published. Required fields are marked *