AndroidのResource - 文字列、色、サイズリソース
文字列、色、サイズリソースに対応するXMLファイルはすべて/res/values/配下に保存する。
デフォルトリソース名
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 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); } }