liguofeng29’s blog

個人勉強用ブログだっす。

AndroidのResource - リソースの概要

Androidアプリのソースは大きく三つの種類がある。

  1. レイアウトファイル
  2. javaソースファイル
  3. リソースファイル

リソースファイルの種類

  1. R.javaを通してアクセスできるリソース、resフォルダ配下に保存する
  2. R.javaを通してアクセスでいないリソース、assetsフォルダ配下に保存する

リソースのアクセス

  • java内でR.java使用
    [<package_name>.]R.<resource_type>.<resource_name>
// windowの背景にR.drawable.img1を設定する
getWindow().setBackgroundDrawableResource(R.drawable.img1);

// タイトルにR.string.sample_stringを設定する
getWindow().setTitle(getResources().getText(R.string.sample_string));

// TextViewコンポーネントを取得する
TextView text = (TextView) findViewById(R.id.textview);
  • java内で実際のリソースアクセス
    Resources.javaを使用
Resources res = getResources();
// 文字列取得
String sampleString = res.getText(R.string.sample_string).toString();
// Drawableリソース取得
Drawable img = res.getDrawable(R.drawable.img1, getTheme());
  • xml内でリソース使用
    @[<package_name>:]<resource_type>/<resrouce_name>
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>

<resources>
    <string name="app_name">GestureLibrarySample</string>
    <string name="sample_string">SAMPLE_STRING</string>
</resources>

<EditText
   android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:textColor="@color/colorAccent"
   android:text="@string/sample_string"/>