忍者ブログ

アンドロイドのあれこれ

Java書くのはまだ早い。Resourcesを見てみよう
Androidでは多くの種類のリソースを使うことができます。大きく分けてみると、XMLファイル、画像ファイルとその他データ。
さらっと書くので詳しく知りたければこちらで参考
Application Resources - http://developer.android.com/intl/ja/guide/topics/resources/index.html

作ったAndroidプロジェクトの初期リソース(res/)は以下のようになります。
Application Resources
drawableの中はアプリのアイコンやアプリに使う画像ファイルまたXMLファイル。drawable-hdpi、drawable-ldpi、drawable-mdpiは端末の解像度に合わせてファイルを分けることができます。
他にももっと細かくわけることもできます。画面サイズでdrawable-hdpi-800x480とか、言語別ならdrawable-jp(日本語用), drawable-th(タイ語用)など

layoutは文字通りアプリ画面のレイアウト設定のXMLファイルです。アプリのテキストやパーツ、ボタン、画像の配置はXML書いてここで簡単に設定できます。
画面の縦向き、横向きはlayout-landディレクトリを作って対応することができます。もちろんdrawable-landもできます。

valuesは「値」です。ここで各種値の定義ができます。たとえば、strings.xml、arrays.xml、styles.xml、テキスト型や配列型の定義できます。

初期に用意されたリソースタイプの他にもあります。
res/anim アニメーションの設定
res/menu メニューの設定
res/raw 音声ファイルや動画ファイルなど
res/color 色の定義、色の設定
res/xml その他の設定のXMLファイル

もっと知りたければこちらで参考: http://developer.android.com/intl/ja/guide/topics/resources/available-resources.html

Androidアプリのデザイン、見た目、パーツの配置はリソースでしか設定できないのか?いや、そんなことないです。
またJavaから定義しておいたリソースを読み取ることもできます。
<!-- res/values/strings.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="drink">RedBull</string>
    <string name="food">カツ丼</string>
    <string name="dessert">Ice Cream Sandwich</string>
</resources>
// MainActivity.java
public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //リソースからテキストを取得
        String drink = getResources().getString(R.string.drink);
        String food = getResources().getString(R.string.food);
        String dessert = getResources().getString(R.string.dessert);
        Log.v("STRING", "drink:" + drink);
        Log.v("STRING:", "food:" + food);
        Log.v("STRING:", "dessert:" + dessert);
        
        //リソースからテキストの配列を取得
        String[] myPhone = getResources().getStringArray(R.array.my_phone);
        for (int a = 0; a < myPhone.length; a++) {
            Log.v("String Array","["+String.valueOf(a)+"] " + myPhone[a]);
        }
        
        //リソースから画像を取得
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    }
}
//logcat
V/STRING  (  307): drink:RedBull
V/STRING: (  307): food:カツ丼
V/STRING: (  307): dessert:Ice Cream Sandwich
V/String Array(  307): [0] HTC Magic
V/String Array(  307): [1] Galaxy S
V/String Array(  307): [2] Nexus S

COMMENT
NAME
TITLE
MAIL (非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS (コメント編集に必須です)
SECRET
管理人のみ閲覧できます
 
PR
© Android Advent
powered by 忍者ツールズ / 忍者ブログ / [PR]