onDraw() メソッド以外の場所で描画関数を呼び出してはならない。
その代わり、
invalidate() メソッド
を呼び出して、再描画が必要な領域にマークを付ける。
将来のある時点で、ウィンドウマネージャがすべての
再描画が必要な領域を統合して、 onDraw() を呼び出す。
2009年5月29日金曜日
2009年5月28日木曜日
Android - Input -
キーボード、Dパッド、タッチスクリーン、トラックボールなど
さまざまな入力形式の可能性がある
KeyCode of DPAD
タッチパネル
More...
さまざまな入力形式の可能性がある
KeyCode of DPAD
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
select(selX, selY - 1);
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
select(selX, selY + 1);
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
select(selX - 1, selY);
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
select(selX + 1, selY);
break;
default:
return super.onKeyDown(keyCode, event);
}
return true;
}
タッチパネル
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() != MotionEvent.ACTION_DOWN)
return super.onTouchEvent(event);
select((int) (event.getX()) / width), (int) (event.getY() / height));
game.showKeypadOrError(selX, selY);
return true;
}
More...
Android - Text -
@Override
protected void onDraw(Canvas canvas) {
Paint foreground = new Paint(Paint.ANTI_ALIAS_FLAG);
// フォントの高さ
foreground.setTextSize(height * 0.75f);
// アスペクト比
foreground.setTextScaleX(width / height);
foreground.setTextAlign(Paint.Align.CENTER);
FontMetrics fm = foreground.getFontMetrics();
float x = width / 2;
float y = height / 2 - (fm.ascent + fm.descent) / 2;
canvas.drawText("Hello!", 100, 100, foreground);
}
public float getFontMetrics (Paint.FontMetrics metrics)
Return the font's recommended interline spacing, given the Paint's settings for typeface, textSize, etc. If metrics is not null, return the fontmetric values in it.
public float ascent
The recommended distance above the baseline for singled spaced text.
public float descent
The recommended distance below the baseline for singled spaced text.
More...
Android - 2D graphics -
2D グラフィックスライブラリは android.graphics
Color クラス
Paint クラス
Canvas クラス
View クラス
Path クラス
etc..
More...
Color
アルファ、赤、緑、青 (ARGB) の4つの値で色を表現する。
アルファは透明度で、
アルファ = 0 : 透明
アルファ = 255 : 不透明
・色の指定方法
Colorクラスの静的定数
XML リソースファイルで定義
・色の参照
XML ファイルで付けた名前で参照
Java コードで取得
getResources() : 現在の Activity に対応する ResourceManager クラスを返す
getColor() : Resource ID に対応する色を Manager に問い合わせる
Paint
グラフィックスの描画で必要なスタイル、色、その他の情報を管理
・描画色を設定
Canvas
描画対象のキャンバスを表現
・キャンバスに描画する
View.onDraw() メソッドをオーバーライドする
Path
直線、曲線、矩形などのベクター描画コマンドを持つ
・円形パスを定義
Direction.CW : right hand
PathEffect クラスを使うと面白い効果が作れる
Color クラス
Paint クラス
Canvas クラス
View クラス
Path クラス
etc..
More...
Color
アルファ、赤、緑、青 (ARGB) の4つの値で色を表現する。
アルファは透明度で、
アルファ = 0 : 透明
アルファ = 255 : 不透明
・色の指定方法
Colorクラスの静的定数
int color = Color.BLUE; // 青
int color = Color.argb(127, 255, 0, 255); // 半透明の紫
XML リソースファイルで定義
#7fff00ff
・色の参照
XML ファイルで付けた名前で参照
android:background="@color/color1";
Java コードで取得
int color = getResources().getColor(R.color.color1);
getResources() : 現在の Activity に対応する ResourceManager クラスを返す
getColor() : Resource ID に対応する色を Manager に問い合わせる
Paint
グラフィックスの描画で必要なスタイル、色、その他の情報を管理
・描画色を設定
Paint cPaint = new Paint();
cPaint.setColor(Color.LTGRAY); // light gray
Canvas
描画対象のキャンバスを表現
・キャンバスに描画する
View.onDraw() メソッドをオーバーライドする
static public class GraphicsView extends View {
public GraphicsView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
// Drawing commands
}
}
Path
直線、曲線、矩形などのベクター描画コマンドを持つ
・円形パスを定義
@Override
protected void onDraw(Canvas canvas) {
Path circle = new Path();
circle.addCircle(150, 150, 100, Path.Direction.CW);
Paint cPaint = new Paint();
Paint tPaint = new Paint();
cPaint.setStyle(Paint.Style.STROKE);
cPaint.setColor(Color.YELLOW);
tPaint.setColor(Color.WHITE);
canvas.drawPath(circle, cPaint);
final String ss = "Happy Birthday To You !!! Happy Birthday To You !!! Happy Birthday To You !!! Happy Birthday To You !!!";
canvas.drawTextOnPath(ss, circle, 0, 20, tPaint);
}
Direction.CW : right hand
// 色設定
paint.setColor(Color.argb(255,255,0,0));
// アンチエイリアス
paint.setAntiAlias(true);
// 塗りつぶし
paint.setStyle(Paint.Style.FILL);
// 塗りつぶしなし
paint.setStyle(Paint.Style.STROKE);
// 枠線の幅
paint.setStrokeWidth(2);
// 直線
canvas.drawLine(25,5,25,5+40,paint);
// パス
Path path = new Path();
path.moveTo(55+ 0,5+ 0);
path.lineTo(55+30,5+ 5);
path.lineTo(55+10,5+20);
path.lineTo(55+40,5+25);
path.lineTo(55+ 0,5+40);
canvas.drawPath(path, paint);
// 四角
canvas.drawRect(new Rect(0, 0, 40, 40), paint);
canvas.drawRect(0, 0, 40, 40, paint);
// 角丸四角
canvas.drawRoundRect(new RectF(0, 0, 40, 40), 10, 10, paint);
canvas.drawRoundRect(0, 0, 40, 40, 10, 10, paint);
// 円
canvas.drawCircle(100, 100, 150, paint);
PathEffect クラスを使うと面白い効果が作れる
2009年5月27日水曜日
Android - リストからの選択 -
android.util.Log クラスは、Android のシステムログに
メッセージを出力するメソッドを持っている
・Log.e():エラー
・Log.w():警告
・Log.i():情報
・Log.d():デバッグ
・Log.v():冗長
Eclipse でこのログをみるには
[Window] -> [Show View] -> [Other...] -> [Android] -> [LogCat]
More...
Sudoku/res/values/strings.xml
リストの形式を記述
Sudoku/res/values/arrays.xml
Sudoku/src/org/example/sudoku/Sudoku.java
Exit ボタンを押したとき、Activity を破棄するために
finish()
を呼び出す
New Game をクリックすると難易度の選択ポップアップが表示される
メッセージを出力するメソッドを持っている
・Log.e():エラー
・Log.w():警告
・Log.i():情報
・Log.d():デバッグ
・Log.v():冗長
Eclipse でこのログをみるには
[Window] -> [Show View] -> [Other...] -> [Android] -> [LogCat]
More...
Sudoku/res/values/strings.xml
Sudoku
Android Sudoku
Continue
New Game
About
About Android Sudoku
\
Sudoku is a logic-based number placement puzzle.
Starting with a partially completed 9x9 grid, the
objective is to fill the grid so that each row,
each column, and each of the 3x3 boxes
(also called blocks) contains the digits
1 to 9 exactly once.
Exit
Settings...
Sudoku settings
s
Music
Play background music
Hints
Show hints during play
Difficulty
Easy
Medium
Hard
リストの形式を記述
Sudoku/res/values/arrays.xml
- @string/easy_label
- @string/medium_label
- @string/hard_label
Sudoku/src/org/example/sudoku/Sudoku.java
package org.example.sudoku;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.util.Log;
public class Sudoku extends Activity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View continueButton = this.findViewById(R.id.continue_button);
continueButton.setOnClickListener(this);
View newButton = this.findViewById(R.id.new_button);
newButton.setOnClickListener(this);
View aboutButton = this.findViewById(R.id.about_button);
aboutButton.setOnClickListener(this);
View exitButton = this.findViewById(R.id.exit_button);
exitButton.setOnClickListener(this);
}
public void onClick(View v) {
switch(v.getId()){
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
case R.id.new_button:
openNewGameDialog();
break;
case R.id.exit_button:
finish();
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.settings:
startActivity(new Intent(this, Settings.class));
return true;
}
return false;
}
private void openNewGameDialog() {
new AlertDialog.Builder(this)
.setTitle(R.string.new_game_title)
.setItems(R.array.difficulty,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialoginterface, int i) {
startGame(i);
}
})
.show();
}
private static final String TAG = "Sudoku";
private void startGame(int i) {
Log.d(TAG, "clicked on " + i);
// start game here
}
}
Exit ボタンを押したとき、Activity を破棄するために
finish()
を呼び出す
New Game をクリックすると難易度の選択ポップアップが表示される
Android Menu action
MENU ボタンを押したときの動作を追加する
Sudoku/res/value/strings.xml
Sudoku/res/menu/menu.xml
Sudoku/src/org/example/sudoku/Sudoku.java
Sudoku/res/xml/settings.xml
Sudoku/src/org/example/sudoku/Settings.java
Sudoku/AndroidManifest.xml
MENU ボタンを押すと、Settings... が表示されるようになった
Settings... をクリックすると、設定項目が表示される
Sudoku/res/value/strings.xml
Sudoku
Android Sudoku
Continue
New Game
About
About Android Sudoku
\
Sudoku is a logic-based number placement puzzle.
Starting with a partially completed 9x9 grid, the
objective is to fill the grid so that each row,
each column, and each of the 3x3 boxes
(also called blocks) contains the digits
1 to 9 exactly once.
Exit
Settings...
Sudoku settings
s
Music
Play background music
Hints
Show hints during play
Sudoku/res/menu/menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/settings"
android:title="@string/settings_label"
android:alphabeticShortcut="@string/settings_shortcut"
/>
</menu>
Sudoku/src/org/example/sudoku/Sudoku.java
package org.example.sudoku;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
public class Sudoku extends Activity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View continueButton = this.findViewById(R.id.continue_button);
continueButton.setOnClickListener(this);
View newButton = this.findViewById(R.id.new_button);
newButton.setOnClickListener(this);
View aboutButton = this.findViewById(R.id.about_button);
aboutButton.setOnClickListener(this);
View exitButton = this.findViewById(R.id.exit_button);
exitButton.setOnClickListener(this);
}
public void onClick(View v) {
switch(v.getId()){
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.settings:
startActivity(new Intent(this, Settings.class));
return true;
}
return false;
}
}
Sudoku/res/xml/settings.xml
android:key="music"
android:title="@string/music_title"
android:summary="@string/music_summary"
android:defaultValue="true" />
android:key="hints"
android:title="@string/hints_title"
android:summary="@string/hints_summary"
android:defaultValue="true" />
Sudoku/src/org/example/sudoku/Settings.java
package org.example.sudoku;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Settings extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
Sudoku/AndroidManifest.xml
xmlns:android="http://schemas.android.com/apk/res/android"
package="org.example.sudoku"
android:versionCode="1"
android:versionName="1.0">
android:icon="@drawable/icon"
android:label="@string/app_name">
android:name=".Sudoku"
android:label="@string/app_name">
android:name=".About"
android:label="@string/about_title"
android:theme="@android:style/Theme.Dialog">
android:name=".Settings"
android:label="@string/settings_title">
MENU ボタンを押すと、Settings... が表示されるようになった
Settings... をクリックすると、設定項目が表示される
Android - テーマを使う -
Android には、名前で参照できる複数のテーマがあらかじめパッケージング
されている
http://developer.android.com/reference/android/R.style.html
android:theme="@android:style/Theme.Dialog"
を
AndroidManifest.xml
に追加
Sudoku/AndroidManifest.xml
サブクラス化して、デフォルト値をオーバーライドすることもできる。
また、
カスタムテーマは res/values/styles.xml で定義できる
されている
http://developer.android.com/reference/android/R.style.html
android:theme="@android:style/Theme.Dialog"
を
AndroidManifest.xml
に追加
Sudoku/AndroidManifest.xml
xmlns:android="http://schemas.android.com/apk/res/android"
package="org.example.sudoku"
android:versionCode="1"
android:versionName="1.0">
android:icon="@drawable/icon"
android:label="@string/app_name">
android:name=".Sudoku"
android:label="@string/app_name">
android:name=".About"
android:label="@string/about_title"
android:theme="@android:style/Theme.Dialog">
サブクラス化して、デフォルト値をオーバーライドすることもできる。
また、
カスタムテーマは res/values/styles.xml で定義できる
Android で数独 - onClick -
新しい Activity を定義して起動する。
レイアウトを設定
Sudoku/res/layout/about.xml
More...
Sudoku/res/values/strings.xml
Sudoku/src/org/example/sudoku/About.java
Sudoku/src/org/example/sudoku/Sudoku.java
Sudoku/AndroidManifest.xml
About ボタンをクリックするとこんな感じ
レイアウトを設定
Sudoku/res/layout/about.xml
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip"
>android:id="@+id/about_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/about_text"
/>
More...
Sudoku/res/values/strings.xml
Sudoku
Android Sudoku
Continue
New Game
About
About Android Sudoku
\
Sudoku is a logic-based number placement puzzle.
Starting with a partially completed 9x9 grid, the
objective is to fill the grid so that each row,
each column, and each of the 3x3 boxes
(also called blocks) contains the digits
1 to 9 exactly once.
Exit
Sudoku/src/org/example/sudoku/About.java
package org.example.sudoku;
import android.app.Activity;
import android.os.Bundle;
public class About extends Activity{
@Override
protected void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.about);
}
}
Sudoku/src/org/example/sudoku/Sudoku.java
package org.example.sudoku;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
public class Sudoku extends Activity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View continueButton = this.findViewById(R.id.continue_button);
continueButton.setOnClickListener(this);
View newButton = this.findViewById(R.id.new_button);
newButton.setOnClickListener(this);
View aboutButton = this.findViewById(R.id.about_button);
aboutButton.setOnClickListener(this);
View exitButton = this.findViewById(R.id.exit_button);
exitButton.setOnClickListener(this);
}
public void onClick(View v) {
switch(v.getId()){
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
}
}
}
Sudoku/AndroidManifest.xml
xmlns:android="http://schemas.android.com/apk/res/android"
package="org.example.sudoku"
android:versionCode="1"
android:versionName="1.0">
android:icon="@drawable/icon"
android:label="@string/app_name">
android:name=".Sudoku"
android:label="@string/app_name">
android:name=".About"
android:label="@string/about_title">
About ボタンをクリックするとこんな感じ
2009年5月26日火曜日
Android で数独 - ユーザインタフェースのレイアウト -
Android で数独を作ってみる。
Project name : Sudoku
Package name : org.example.sudoku
Activity : Sudoku
Application name : Sudoku
More...
XML でユーザインタフェースを設定しているのが
res/layout/main.xml
これを書き換えれば OK
Sudoku/res/layout/main.xml
もう少しカスタマイズ
Sudoku/res/layout/main.xml
Sudoku/res/values/colors.xml
横長モードだとはみ出してしまう
ちなみにエミュレータで横長モードにするには Ctrl + F11
ので、横長用のレイアウトを作る
Sudoku/res/layout-land/main.xml
直った
Project name : Sudoku
Package name : org.example.sudoku
Activity : Sudoku
Application name : Sudoku
More...
XML でユーザインタフェースを設定しているのが
res/layout/main.xml
これを書き換えれば OK
Sudoku/res/layout/main.xml
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/main_title"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/new_game_label"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/about_label"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/exit_label"
/>
もう少しカスタマイズ
Sudoku/res/layout/main.xml
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="30dip"
>android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
>android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_title"
android:layout_gravity="center"
android:layout_marginBottom="25dip"
android:textSize="24.5sp"
/>
android:id="@+id/continue_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label"
/>
android:id="@+id/new_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/new_game_label"
/>
android:id="@+id/about_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/about_label"
/>
android:id="@+id/exit_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/exit_label"
/>
Sudoku/res/values/colors.xml
#3500ffff
横長モードだとはみ出してしまう
ちなみにエミュレータで横長モードにするには Ctrl + F11
ので、横長用のレイアウトを作る
Sudoku/res/layout-land/main.xml
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:padding="15dip"
android:orientation="horizontal"
>android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="center"
android:paddingLeft="20dip"
android:paddingRight="20dip"
>android:text="@string/main_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="20dip"
android:textSize="24.5sp"
/>android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:stretchColumns="*"
>
android:id="@+id/continue_button"
android:text="@string/continue_label"
/>
android:id="@+id/new_button"
android:text="@string/new_game_label"
/>
android:id="@+id/about_button"
android:text="@string/about_label"
/>
android:id="@+id/exit_button"
android:text="@string/exit_label"
/>
直った
Android Project の作成
Eclipse を起動
[File] -> [New] -> [Project] -> [Android Project]
を選択して Next をクリック
More...
Project name : Hello
Contents : Create new project in workspace
Use default location
Build Target : Android 1.5
Properties : Hello, Android
Package name : org.example.hello
Create Activity : Hello
Min SDK Version : 3
エラーがでる!
Eclipse3.4 と JDK1.6 の組み合わせではエラーがでるらしい。
Compiler compliance level を JDK1.5にする。
[Window] -> [Preferences] -> [Java] -> [Compiler]
JDK Compliance の Compiler compliance level を 1.5 にする
エミュレータ上で実行
Project で右クリック -> [Run As] -> [Android Application]
AVD (Android Virtual Devices) が無いので追加しますか?と聞かれる
Yes をクリック
Name : my_android1.5
Target : Android 1.5 - 1.5
Skin : Default (HVGA)
Create AVD をクリック
追加された my_android1.5 を選択して Finish をクリック
Launch a new Android Virtual Devices
の
my_android1.5 をチェックして OK をクリック
エミュレータが起動
[File] -> [New] -> [Project] -> [Android Project]
を選択して Next をクリック
More...
Project name : Hello
Contents : Create new project in workspace
Use default location
Build Target : Android 1.5
Properties : Hello, Android
Package name : org.example.hello
Create Activity : Hello
Min SDK Version : 3
エラーがでる!
Eclipse3.4 と JDK1.6 の組み合わせではエラーがでるらしい。
Compiler compliance level を JDK1.5にする。
[Window] -> [Preferences] -> [Java] -> [Compiler]
JDK Compliance の Compiler compliance level を 1.5 にする
エミュレータ上で実行
Project で右クリック -> [Run As] -> [Android Application]
AVD (Android Virtual Devices) が無いので追加しますか?と聞かれる
Yes をクリック
Name : my_android1.5
Target : Android 1.5 - 1.5
Skin : Default (HVGA)
Create AVD をクリック
追加された my_android1.5 を選択して Finish をクリック
Launch a new Android Virtual Devices
の
my_android1.5 をチェックして OK をクリック
エミュレータが起動
2009年5月25日月曜日
Eclipse で Android
Eclipse を入れるところから
Eclipse Downloads
で Eclipse IDE for Java EE Developers の Windows 版をダウンロード
展開して
C:\eclipse\eclipse.exe
を起動して
[Help] -> [Software Updates...]
More...
[Add Site...] をクリック
Location : http://dl-ssl.google.com/android/eclipse
を入力して OK
追加された android のサイトをチェックして Install... をクリック
Next をクリック
Review Licenses に同意して Finish をクリック
Install 中
終わったら再起動
[Window] -> [Preference] -> [Andorid] を選択
Android SDK のディレクトリを指定していないのでエラーがでる。
Android SDK のディレクトリを指定して OK をクリック
ちなみに、Windows に Android SDK を入れるには
Download
Installing
System Requirements
Windows 版をdownload して C:\Google に展開
[コントロールパネル] -> [システム] -> [詳細設定] -> [環境変数]
Path に
C:\Google\android-sdk-windows-1.5_r2\tools
を追加
Eclipse Downloads
で Eclipse IDE for Java EE Developers の Windows 版をダウンロード
展開して
C:\eclipse\eclipse.exe
を起動して
[Help] -> [Software Updates...]
More...
[Add Site...] をクリック
Location : http://dl-ssl.google.com/android/eclipse
を入力して OK
追加された android のサイトをチェックして Install... をクリック
Next をクリック
Review Licenses に同意して Finish をクリック
Install 中
終わったら再起動
[Window] -> [Preference] -> [Andorid] を選択
Android SDK のディレクトリを指定していないのでエラーがでる。
Android SDK のディレクトリを指定して OK をクリック
ちなみに、Windows に Android SDK を入れるには
Download
Installing
System Requirements
Windows 版をdownload して C:\Google に展開
[コントロールパネル] -> [システム] -> [詳細設定] -> [環境変数]
Path に
C:\Google\android-sdk-windows-1.5_r2\tools
を追加
2009年5月24日日曜日
NetBeans 6.5 で Android
[Tools] -> [Plugins] -> [Setting]
More...
Add ボタンをクリックして
Name : Android
URL : http://kenai.com/downloads/nbandroid/updates.xml
OK を押すと追加される
Available Plugins に Android が追加されている
チェックして Install をクリック
License Agreement に同意して Install をクリック
署名が無いといわれるけど Continue
Finish をクリック
Android SDK をインストール
Download
Installing
System Requirements
Windows 版をdownload して C:\Google に展開
[コントロールパネル] -> [システム] -> [詳細設定] -> [環境変数]
Path に
C:\Google\android-sdk-windows-1.5_r2\tools
を追加
NetBeans を再起動
[Tools] -> [Java Platforms] -> [Add Platform...]
Google Android Open Handheld Platform
を選択して Next
ファイル名に
C:\Google\android-sdk-windows-1.5_r2
...としたけど認識されない。うーん残念。
しょうがないから Eclipse で再チャレンジ!
More...
Add ボタンをクリックして
Name : Android
URL : http://kenai.com/downloads/nbandroid/updates.xml
OK を押すと追加される
Available Plugins に Android が追加されている
チェックして Install をクリック
License Agreement に同意して Install をクリック
署名が無いといわれるけど Continue
Finish をクリック
Android SDK をインストール
Download
Installing
System Requirements
Windows 版をdownload して C:\Google に展開
[コントロールパネル] -> [システム] -> [詳細設定] -> [環境変数]
Path に
C:\Google\android-sdk-windows-1.5_r2\tools
を追加
NetBeans を再起動
[Tools] -> [Java Platforms] -> [Add Platform...]
Google Android Open Handheld Platform
を選択して Next
ファイル名に
C:\Google\android-sdk-windows-1.5_r2
...としたけど認識されない。うーん残念。
しょうがないから Eclipse で再チャレンジ!
2009年5月22日金曜日
2009年5月21日木曜日
14時に30分間昼寝しました。
MITSuME の再解析の1月25日と1月26日が終了。
このへんは R band のカメラが壊れてるから、
ちょっとフレームの選択が面倒。
Fermi は GRBanalysis framework に挑戦して
みようと試みるも、前任者の wiki の情報が
足りなくてどこに何があるのかサッパリ。。。
前途多難です。
そろそろ帰ろうかな。
このへんは R band のカメラが壊れてるから、
ちょっとフレームの選択が面倒。
Fermi は GRBanalysis framework に挑戦して
みようと試みるも、前任者の wiki の情報が
足りなくてどこに何があるのかサッパリ。。。
前途多難です。
そろそろ帰ろうかな。
2009年5月20日水曜日
2009年5月19日火曜日
2009年5月8日金曜日
あたりまえと思っていたことがそうじゃない
最近、『日本人が知らない 県民地図』という本を読みました。
いやー面白いです。県によって本当にいろいろな文化があるんだなぁと。
北海道では当たり前(私は道産子です)だったことも、こっちでは
当てはまらなかったり、それはないだろと思うことが他の県では
当たり前だったり。
道民は実は寒がりってのが載ってて、そうなんだよーと1人ツッコミをいれたり。
そうそう北海道は1世帯あたりのアイス消費額が1番なんだって。
確かに実家の冷蔵庫にはいつもアイスが入ってたなぁ。
でも、研究室の先輩や後輩に本に載ってる方言を聞いても、知らないって
言われてしまった。実はマイナー?
なにはともあれ、秘密のケンミンショーは好きな番組です。
いやー面白いです。県によって本当にいろいろな文化があるんだなぁと。
北海道では当たり前(私は道産子です)だったことも、こっちでは
当てはまらなかったり、それはないだろと思うことが他の県では
当たり前だったり。
道民は実は寒がりってのが載ってて、そうなんだよーと1人ツッコミをいれたり。
そうそう北海道は1世帯あたりのアイス消費額が1番なんだって。
確かに実家の冷蔵庫にはいつもアイスが入ってたなぁ。
でも、研究室の先輩や後輩に本に載ってる方言を聞いても、知らないって
言われてしまった。実はマイナー?
なにはともあれ、秘密のケンミンショーは好きな番組です。