リソースとは

色、文字列、フォントサイズ、画像などのデータを、外部ファイル(リソース)として定義して、状態に応じてそれらを使用します

リソースの種類

種類内容
文字列画面に表示する文字列を指定するリソース
フォントや背景などの色を指定するリソース
大きさフォントサイズなどを指定するリソース
画像画像のリソース
アニメーション画像が文字列などをアニメーションさせるための情報を指定するリソース
レイアウトレイアウトを指定するリソース
スタイル・テーマレイアウトで使用するデザインを指定するリソース

リソースの定義

resフォルダ以下に、xmlファイル、または画像ファイル(png)を配置する
構成内容
res/animフォルダアニメーション定義のxml
res/drawableフォルダ画像ファイルまたは、画像を定義したxmlファイル
res/layoutフォルダ画面レイアウト定義のxml
res/valuesフォルダ値を定義したxml

※フォルダ名の後ろに、「-xxxx」をつけることで、解像度や言語によって使われるリソースを切り替えることが可能

文字列

Eclipseで、Androidアプリケーションを作成すると、

res/values/strings.xml

というファイルが自動で作成されます。
このファイルが、文字列を定義しているリソースファイルです。

リソースファイルは、resourcesという要素をルート要素とするXMLです。
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>
ひとつの文字列は、ひとつのstring要素によって定義されます。
定義したい文字列を要素の内容として書き、その文字列に与えたい名前を、name属性として記述します。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">リソース演習</string>
</resources>

文字列と同様に、resourcesという要素をルート要素とするXMLを書くことによって定義することができます。
ひとつの色は、color要素によって表されます。
定義したい色を要素の内容として書き、その色に与えたい名前を、name属性として記述します。

色は、16進数の左側にシャープ(#)を書いたもので表します。形式は、次の4種類のいづれかを使用します。
#RGB
#ARGB
#RRGGBB
#AARRGGBB
A:アルファ値
R:赤
G:緑
B:青
を示す、16進数の一桁を意味します。
例えば、赤は次のように定義します。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red1">#F00</color>
    <color name="red2">#FF0000</color>
    <color name="red3">#FFFF0000</color>
</resources>

大きさ

文字列や色と同様に、resourcesという要素をルート要素とするXMLを書くことによって定義することができます。
ひとつの大きさは、dimen要素によって表されます。
定義したい大きさを要素の内容として書き、その大きさに与えたい名前を、name属性として記述します。

大きさは、10進数と単位によって表現します。単位は、次の6種通のうち、いづれかを使用できます。
単位説明
mmミリメートル
inインチ。1インチは、約25.4ミリメートル
ptポイント。1ポイントは、72分の1インチ(約0.35ミリメートル)
pxピクセル。画面の実際のピクセル数で、解像度によって変化する
dp(dip)画面の物理的な密度に基づいた抽象的な単位。160dpiの画面で、1dp = 1pxになる。解像度によらず一定の大きさを表現できる
sp倍率非依存ピクセル。ユーザが設定しているフォントサイズを基準に、拡大される。フォントサイズを指定する場合は、この単位が推奨されている
次のように記述します。
<?xml version="1.0" encoding="utf-8"?>  
<resources>  
  <dimen name="textview_height">30dp</dimen>  
  <dimen name="textview_width">150dp</dimen>  
  <dimen name="font_size">16sp</dimen>  
</resources> 

画像

Androidが扱うことができる画像形式は、次の4種類です。
  • JPEG
  • BMP
  • PNG
  • GIF
ただし、使用が推奨されているのは、PNGのみです。それ以外は非推奨です。
リソースフォルダ
画像リソースを、DPI(dot per inchの略、ピクセル解像度)ごとに用意することで、自動で端末のDPIに合わせた画像を読み込む仕組みがあります。
フォルダ名用途
res/drawable-ldpi低解像度扱いの画像
res/drawable-mdpi中解像度扱いの画像
res/drawable-hdpi高解像度扱いの画像
res/drawable-nodpi解像度を意識しない画像
res/drawableAndroid1.5までの指定方法。Android1.6以上でも指定出来るが、mdpi扱いになってるらしい

改造度に依存しない画像は、drawable-nodpiにおくのがよさそう。
(参照:http://developer.android.com/guide/practices/scree...)

レイアウト

後日説明します

アニメーション

後日説明します

テーマについて

後日説明します

リソースの参照方法

リソースを定義すると、Rクラスにリソースを参照するためのIDが自動生成されます。
XMLファイル、またはJAVAプログラムから、そのリソースIDを指定することで参照することができます。
Rクラス(自動生成)
public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class id {
        public static final int button1=0x7f050000;
        public static final int button2=0x7f050001;
        public static final int button3=0x7f050002;
        public static final int textView01=0x7f050003;
    }
    public static final class layout {
        public static final int main=0x7f030000;
        public static final int sub=0x7f030001;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
        public static final int sub_activity_name=0x7f040002;
    }
}

XMLからのリソース参照方法

「@リソースタイプ/リソース名」という形式で、参照することができます。
リソースタイプ
タイプ指定内容
string文字列
color
dimen大きさ
リソース名
リソースの名前(リソースを定義したときにname属性に設定した値)

以下は、レイアウトXMLから参照する例です。
res/values/strings.xml
<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <string name="hello">こんにちは</string>
</resources>
res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
<TexView
    android:id="@+id/textView01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
</LinearLayout>

JAVAプログラムの参照方法

「R.リソースタイプ.リソース名」という形式で、参照することができます。

以下は、JAVAプログラムから参照する例です。
res/values/strings.xml
<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <string name="hello">こんにちは</string>
</resources>
res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
<TexView
    android:id="@+id/textView01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
</LinearLayout>
JAVAプログラム
TextView text = (TextView) findViewById(R.id.text01);
text.setText(R.string.hello);
Androidのオブジェクトが持っているメソッドの多くは、リソースIDを引数として渡せるようになっています。
上記のように、テキストビューがもっている

void setText(int resid)

というメソッドは、引数としてリソースIDを受け取って、文字列を設定します。

このページへのコメント

hering uofm sprayers

0
Posted by fall 2013年10月03日(木) 06:15:00
http://download.recipe.catalog.4.4.softwarenvm.com
返信

gDC1hk <a href="http://iqsrjpmxdqgf.com/">iqsrjpmxdqgf</a>, [url=http://oslhylhdwjqj.com/]oslhylhdwjqj[/url], [link=http://asxghdqibsif.com/]asxghdqibsif[/link], http://sdmbdgcsahzv.com/

0
Posted by vzqsrdcbeti 2013年09月20日(金) 16:53:54
http://ryfabqnqbhnb.com/
返信

lcVsIA <a href="http://qscxjinixsbf.com/">qscxjinixsbf</a>, [url=http://ywpuspyyhsbj.com/]ywpuspyyhsbj[/url], [link=http://clegntnjcehx.com/]clegntnjcehx[/link], http://rptppssvobtx.com/

0
Posted by nauovcjutp 2013年07月21日(日) 09:58:07 返信

3QolGt <a href="http://zgynasmirnmk.com/">zgynasmirnmk</a>, [url=http://xsdzxsxmttlz.com/]xsdzxsxmttlz[/url], [link=http://lwatjmmwpdmz.com/]lwatjmmwpdmz[/link], http://zbsdykikfoji.com/

0
Posted by bvwpgogolx 2013年07月06日(土) 23:05:19
http://wgckqkebrfld.com/
返信

Nbmg8m <a href="http://mtwajibadvfq.com/">mtwajibadvfq</a>, [url=http://randfidyfbsl.com/]randfidyfbsl[/url], [link=http://llrmqctuijdl.com/]llrmqctuijdl[/link], http://abvgxyamthfq.com/

0
Posted by xgytpxac 2013年06月17日(月) 09:56:23
http://mkgttbtcbzoh.com/
返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます