読者です 読者をやめる 読者になる 読者になる

liguofeng29’s blog

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

AndroidのResource - 文字列、色、サイズリソース

文字列、色、サイズリソースに対応するXMLファイルはすべて/res/values/配下に保存する。

デフォルトリソース名

  • /res/values/strings.xml
  • /res/values/colors.xml
  • /res/values/dimens.xml

Rクラス内の内部クラス名

  • R.string
  • R.color
  • R.dimen

Android色の形式

  • RGB
  • ARGB
  • RRGGBB
  • AARRGGBB

文字列、色、サイズ設定サンプル

①文字列XML(/res/values/strings.xml)

<resources>
    <string name="app_name">ResourceSample1</string>
    <string name="c1">#ff0000</string>
    <string name="c2">#00fce3</string>
    <string name="c3">#0055ff</string>
    <string name="c4">#d21cc9</string>
    <string name="c5">#6dba8b</string>
    <string name="c6">#3c7435</string>
    <string name="c7">#a1f412</string>
    <string name="c8">#ae8771</string>
    <string name="c9">#a37848</string>
</resources>

②色XML(/res/values/colors.xml)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#734444</color>
    <color name="colorPrimaryDark">#ff0000</color>
    <color name="colorAccent">#c1ba79</color>
    <color name="c1">#ff0000</color>
    <color name="c2">#00fce3</color>
    <color name="c3">#0055ff</color>
    <color name="c4">#d21cc9</color>
    <color name="c5">#6dba8b</color>
    <color name="c6">#3c7435</color>
    <color name="c7">#a1f412</color>
    <color name="c8">#ae8771</color>
    <color name="c9">#a37848</color>
</resources>

③サイズXML(/res/values/dimens.xml)

<resources>
    <dimen name="spacing">8dp</dimen>
    <dimen name="cell_width">60dp</dimen>
    <dimen name="cell_height">50dp</dimen>
    <dimen name="title_font_size">18sp</dimen>
</resources>

文字列、色、サイズ使用サンプル
①レイアウト

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:text="@string/app_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="@dimen/title_font_size" />
    <GridView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/grid"
        android:horizontalSpacing="@dimen/spacing"
        android:verticalSpacing="@dimen/spacing"
        android:numColumns="3"
        android:gravity="center" />
</LinearLayout>

②MainActivity.java

package com.example.liguofeng.resourcesample1;

import android.content.res.Resources;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    int[] textIds = new int[]{
            R.string.c1,R.string.c2,R.string.c3,
            R.string.c4,R.string.c5,R.string.c6,
            R.string.c7,R.string.c8,R.string.c9
    };

    int[] colors = new int[]{
            R.color.c1,R.color.c2,R.color.c3,
            R.color.c4,R.color.c5,R.color.c6,
            R.color.c7,R.color.c8,R.color.c9
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        BaseAdapter adapter = new BaseAdapter() {
            @Override
            public int getCount() {
                return textIds.length;
            }

            @Override
            public Object getItem(int position) {
                return getResources().getText(textIds[position]);
            }

            @Override
            public long getItemId(int position) {
                return position;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                TextView text = new TextView(MainActivity.this);
                Resources res = getResources();

                text.setWidth((int) res.getDimension(R.dimen.cell_width));
                text.setHeight((int) res.getDimension(R.dimen.cell_height));

                text.setText(textIds[position]);
                text.setBackgroundResource(colors[position]);

                return text;
            }
        };

        GridView grid = (GridView) findViewById(R.id.grid);
        grid.setAdapter(adapter);
    }
}

f:id:liguofeng29:20160102001017p:plain