戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
23
24
25
26
27
28
29
30
31
12

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

環境変数の一覧を取得してみる:System.getenv()

ADT(Android Development Tools)adb shellprintenv を使えば携帯に設定されている環境変数が見れますが、プログラム上からでも一覧を取得してみることができます。

2段表示の ListView (android.R.layout.simple_list_item_2)を使って表示してみます。
上段が変数名、下段が値です。

以下、サンプルソース。

■ 画面イメージ ---------------------------------------------
android_Environment.png

■ ソースコード ---------------------------------------------
package jp.inujirushi.sample.activity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class EnvironmentActivity extends Activity {
/** アクティビティを生成した時に呼ばれます。 */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// キー
final String TEXT1 = "KEY";
final String TEXT2 = "VALUE";

// 環境変数を取得する
Map<String, String> env = System.getenv();

// 環境変数の値をリスト化する
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map;
for (Iterator<String> i = env.keySet().iterator(); i.hasNext();) {
// 環境変数を取得する
String key = (String) i.next();
String value = env.get(key);

// リストに追加する
map = new HashMap<String, String>();
map.put(TEXT1, key);
map.put(TEXT2, value);
list.add(map);
}

// SimpleAdapterを生成する
String[] key = { TEXT1, TEXT2 };
int[] id = { android.R.id.text1, android.R.id.text2 };
SimpleAdapter adapter = new SimpleAdapter(this, list,
android.R.layout.simple_list_item_2, key, id);

// ListViewを生成する
ListView listView = new ListView(this);
listView.setAdapter(adapter);

// レイアウトを生成する。
LinearLayout layout = new LinearLayout(this);

// レイアウトにリストを追加する
layout.addView(listView);

// レイアウトを設定する
setContentView(layout);
}
}

スポンサーサイト

リソース内画像ファイルの一覧取得:リフレクション

リソースに保存されている画像ファイルを一覧で取得するにはリフレクションを使います。
リフレクションは、クラスからフィールドやメソッドなどの情報を取得するための JavaのAPI です。

リソース内の情報は R.java で管理されており、画像ファイルはその中の drawable で管理されています。
以下は、リソース内の画像ファイルを全て表示するためのサンプルソースです。

■ サンプルソース ---------------------------------------------

// レイアウトを生成する
LinearLayout layout = new LinearLayout(this);

// 画像リソースを取得する
Field[] fields = R.drawable.class.getFields();

// 画像リソース読込み
for (Field field : fields) {
try {
// フィールド名を取得する
String name = field.getName();

// フィールドの値を取得する
int value = (Integer) field.get(name);

// 画像読込み
ImageView image = new ImageView(this);
image.setImageResource(value);

// レイアウトに画像を表示する
layout.addView(image);

} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}

// レイアウトを設定する
setContentView(layout);


※自身のパッケージの R.java を参照することで登録したファイルを参照することができますが、android.R を対象にすることで android にデフォルトで登録されている色々な画像ファイルを取得することもできます。
プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。