Dialog を使ってみた

Dialog は
java.lang.Object
  ↳ android.app.Dialog
を使います

というわけで、Dialog を使ってみた
Dialog で任意のレイアウトを表示させることができます

サンプルプログラム
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;

public class DialogTest extends Activity {
  Dialog dialog;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 
    dialog = new Dialog(this);

    // Dialog のレイアウトを指定
    dialog.setContentView(R.layout.dialogtest);

    // タイトルの指定
    dialog.setTitle("Title");

    // Button がクリックされたときに呼び出されるコールバックを登録
    dialog.findViewById(R.id.Dialog_Button)
    .setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
        dialog.dismiss();
      }
    });
  
    dialog.show();
  }
}

XMLリソース
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" 
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <TextView 
    android:id="@+id/Dialog_TextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:text="TextView">
  </TextView>
  <Button 
    android:id="@+id/Dialog_Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="Button">
  </Button>
  <CheckBox 
    android:id="@+id/Dialog_CheckBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="CheckBox">
  </CheckBox>
</LinearLayout>

プログラムを実行すると...



こんな感じ!

AlertDialog を使ってみた

AlertDialog は
java.lang.Object
  ↳ android.app.Dialog
    ↳ android.app.AlertDialog
を使います

というわけで、AlertDialog をいじってみた

サンプルプログラム
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;

public class AlertDialogTest extends Activity {
  AlertDialog.Builder alertDialogBuilder;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    alertDialogBuilder = new AlertDialog.Builder(this);

    // Title を設定
    alertDialogBuilder.setTitle("Title");

    // Message を設定
    alertDialogBuilder.setMessage("Message");

    // Icon を設定
    alertDialogBuilder.setIcon(R.drawable.icon);

    // Positive Button を設定
    alertDialogBuilder.setPositiveButton(
      "Positive",
      new DialogInterface.OnClickListener() {
        // Positive Button がクリックされた時の動作
        public void onClick(DialogInterface dialog, int which) {

        }
      }
    );

    // Neutral Button を設定
    alertDialogBuilder.setNeutralButton(
      "Neutral", 
      new DialogInterface.OnClickListener() {
        // Neutral Button がクリックされた時の動作
        public void onClick(DialogInterface dialog, int which) {

        }
      }
    );

    // Negative Button を設定
    alertDialogBuilder.setNegativeButton(
      "Negative", 
      new DialogInterface.OnClickListener() {
        // Negative Button がクリックされた時の動作
        public void onClick(DialogInterface dialog, int which) {

        }
      }
    );

    // AlertDialog を表示
    alertDialogBuilder.create().show();
  }
}

プログラムを実行すると...



こんな感じ!

au が『IS01』を発表



本日行われたau新商品発表会において、au初となるSHARP製のAndroidスマートフォン「IS01」が発表されました。
5.0インチの大型液晶にタッチパネル、フルキーボードを搭載
ワンセグや赤外線通信も搭載している

au携帯向けサービスのAndroid版などをを提供するAndroid端末向けポータルサイト「au one Market」も同時にオープンするとのこと
LISMO!」も、本年9月下旬以降にアップデートにより、利用可能になる予定だそうです

詳しくは公式サイトより

ソフトバンクが『X06HT HTC Desire』発表

本日開催された ソフトバンク OPEN DAY イベント にて、ソフトバンク初のAndroid端末 X06HT, HTC Desireを発表しました。

HTC Desire は 3.7インチ有機ELディスプレイ、1GHzの高速CPU「Snapdragon」、最新のAndroid 2.1を搭載したハイスペックなAndroid 搭載スマートフォン。
また「HTC Sense」を搭載し、ユーザーのニーズに合わせたカスタマイズが可能

発売は2010年4月下旬以降で、4月上旬より予約受付とのこと

詳しくは公式サイトより

ImageView を使ってみた

ImageView は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.ImageView
を使用します

ImageView に画像を設定するには
リソースから設定,Bitmap で設定,XML で直接指定
などでできます

というわけで、ImageView をいじってみた

サンプルプログラム
import android.app.Activity;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;

public class ImageViewTest extends Activity {
  ImageView imageView[];
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.imageviewtest);

    imageView = new ImageView[5]; 
    imageView[0] = (ImageView)findViewById(R.id.ImageView1);
    imageView[1] = (ImageView)findViewById(R.id.ImageView2);
    imageView[2] = (ImageView)findViewById(R.id.ImageView3);
    imageView[3] = (ImageView)findViewById(R.id.ImageView4);
    imageView[4] = (ImageView)findViewById(R.id.ImageView5);
  
    for (int i = 0; i < 3; i++) {
      // ImageView にリソースを設定
      imageView[i].setImageResource(R.drawable.icon);   
    }
  
    // ImageVIew に Drawable を設定
    imageView[3].setImageDrawable(getResources().getDrawable(R.drawable.icon));

    // ImageView に Bitmap を設定
    imageView[4].setImageBitmap(
        BitmapFactory.decodeResource(
          getResources(), 
          R.drawable.icon
        ));

    for (int i = 0; i < 5; i++) {
      // ImageView のアルファ値を設定(0 ~ 255)
      imageView[i].setAlpha(i * 255 / 4);
    }
  }
}
ImageView を XML で指定
<ImageView
  android:id="@+id/ImageView"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:src="@drawable/icon">
</ImageView>
プログラムを実行すると...
こんな感じ!


参考サイト http://developer.android.com/intl/ja/reference/android/widget/ImageView.html

Activity のライフサイクル

Activity のライフサイクルについて

Activity の基本的な3つの状態
  • アクティブ状態:フォアグランドに表示されている状態
  • 一時停止状態: 前面のアクティビティが透明か全画面表示でないため一部が見えている状態
  • 停止状態: 別のアクティビティがによって完全に隠されている状態
をとる

Activity の状態が遷移したときに呼び出される関数
  • void onCreate(Bundle savedInstanceState)
  •      Activiy が始めて作成されるときに呼び出される
  • void onRestart()
  •      Activity 停止後、再会するときに呼び出される
  • void onStart()
  •      Activity がユーザーから見えるようになる直前に呼び出される
  • void onResume()
  •      Activity がユーザーとの対話を開始する直前に呼び出される
  • void onPause()
  •      システムが別の Activity を開始しようとしているときに呼び出される
  • void onStop()
  •      Activity がユーザーから見えなくなったときに呼び出される
  • void onDestroy()
  •      Activity が破棄される前に呼び出される

ライフサイクル図

プロセスが強制終了するとき、onPause() だけは必ず呼び出されるが、onStop() と onDestroy() は、必ず呼び出されるとは限らない

Activity が強制終了させられる前の状態を保存しておきたい場合は、onSaveInstanceState() メソッドを実装
これは onPause() が呼び出される前に呼び出され、Activity の動的な状態を名前/値ペアとして記録できる Bundle オブジェクトが渡される。
Activity がもう一度開始されると、Bundle は onCreate() と、onStart() の後に呼び出される onRestoreInstanceState() メソッドに渡され、保存されている状態を復元できる

onSaveInstanceState() は常に呼び出されるわけではないので、一時的な状態を記録する目的のみに使用し、
永続データの格納には onPause() を使用したほうがよい

うーん、なるほど!

参考サイト
http://developer.android.com/intl/ja/guide/topics/fundamentals.html

SeekBar を使ってみた

SeekBar は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.ProgressBar
      ↳ android.widget.AbsSeekBar
        ↳ android.widget.SeekBar
を使用します

とういうわけで、SeekBar をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class SeekBarTest extends Activity {
  SeekBar seekBar;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.seekbartest);

    seekBar = (SeekBar) findViewById(R.id.SeekBar01);

    // SeekBar の最大値を設定
    seekBar.setMax(100);
  
    // SeekBar の現在値を設定
    seekBar.setProgress(75);

    // SeekBar のセカンダリ値を設定
    seekBar.setSecondaryProgress(75);
  
    // SeekBar の値が変更されたときに呼び出されるコールバックを登録
    seekBar.setOnSeekBarChangeListener(
      new OnSeekBarChangeListener() {
        // SeekBar の値が変わったときの動作 
        public void onProgressChanged(
            SeekBar seekBar,
            int progress,
            boolean fromTouch) {
        }

        // SeekBar のタッチの開始時の動作
        public void onStartTrackingTouch(
            SeekBar seekBar) {
        }

        // SeekBar のタッチの終了時の動作
        public void onStopTrackingTouch(
            SeekBar seekBar) {
        }
      }
    );
  }
}
XMLリソース
<SeekBar
  android:id="@+id/SeekBar"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
</SeekBar>
SeekBar の値をXMLで指定することも可能
<SeekBar
  android:id="@+id/SeekBar"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:max="100"
  android:progress="50"
  android:secondaryProgress="75">
</SeekBar>
プログラムを実行すると...

こんな感じ!

うっすら見えているのがセカンダリ値

RatingBar を使ってみた

RatingBar は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.ProgressBar
      ↳ android.widget.AbsSeekBar
        ↳ android.widget.RatingBar
を使用します

というわけで、RatingBar をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;

public class RatingBarTest extends Activity {
  RatingBar ratingBar;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ratingbartest);
  
    ratingBar = (RatingBar) findViewById(R.id.RatingBar01);
  
    // レイティングの最大数を設定
    ratingBar.setNumStars(5);
    // レイティングの最大数を取得
    int num = ratingBar.getNumStars();
 
    // 現在のレイティング数を設定
    ratingBar.setRating(3.0f);
    // 現在のレイティングの数を取得
    float rate = ratingBar.getRating();

    // RatingBar のレイティング数が変わったときに呼び出されるコールバックを登録
    ratingBar.setOnRatingBarChangeListener(
      new OnRatingBarChangeListener() {
        public void onRatingChanged(
            RatingBar ratingBar, 
            float rating, 
            boolean fromUser) {
          // RatingBar のレイティング数が変わったときの動作
        } 
      }
    );
  }
}
XMLリソース
<RatingBar
  android:id="@+id/RatingBar"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content">
</RatingBar>
RatinBar の値をXMLで指定することも可能
<RatingBar 
  android:id="@+id/RatingBar"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:numStars="5"
  android:rating="3.0">
</RatingBar>
プログラムを実行すると

こんな感じ!

ProgressBar を使ってみた

ProgressBar は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.ProgressBar
を使用します

とういわけで、ProgressBar をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.widget.ProgressBar;

public class ProgressBarTest extends Activity {
  ProgressBar progressBar4, progressBar5;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.progressbartest);
  
    progressBar4 = (ProgressBar) findViewById(R.id.ProgressBar04);
    progressBar5 = (ProgressBar) findViewById(R.id.ProgressBar05);

    // 水平のとき
    // ProgressBar の最大値を設定
    progressBar4.setMax(100);
    // ProgressBar の値を設定
    progressBar4.setProgress(50);
    // ProgressBar のセカンダリ値を設定
    progressBar4.setSecondaryProgress(75);
  
    // ProgressBar の不定(true)か特定(false)か
    progressBar5.setIndeterminate(true);
  }
}
Indeterminate の値を true にすると下図のようなプログレスがずっとループする状態になる

XMLリソース
<ProgressBar
  android:id="@+id/ProgressBar"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  style="?android:attr/progressBarStyle">
</ProgressBar>

style=" " の部分を変えれば見た目を変更できる(下図)
  • 1つ目: style="?android:attr/progressBarStyleSmall"
  • 2つ目: style="?android:attr/progressBarStyle"
  • 3つ目: style="?android:attr/progressBarStyleLarge"
  • 4,5つ目: style="?android:attr/progressBarStyleHorizontal"
プログラムを実行すると...

こんな感じ!

ListView を使ってみた

ListView は
java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.AdapterView<T extends android.widget.Adapter>
        ↳ android.widget.AbsListView
          ↳ android.widget.ListView
を使用します

というわけで、ListView をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListViewTest extends Activity {
  ListView listView;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listviewtest01);

    listView = (ListView) findViewById(R.id.ListViewTest01_ListView);

    // 表示させるリスト
    String[] items = new String[] {
        "First",
        "Second",
        "Third",
        "Fourth"
    };

    // ArrayAdapter を作成
    ArrayAdapte<string> adapter = 
      new ArrayAdapter<string> (
        this,
        android.R.layout.simple_list_item_1,
        items
      );
  
    // ListView に Adapter を設定
    listView.setAdapter(adapter);

    // ListView がクリックされた時に呼び出されるコールバックを登録
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      public void onItemClick(AdapterView parent, View view, int position, long id) {
      }
    });

    // ListView のアイテムが選択された時に呼び出されるコールバックを登録
    listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
      public void onItemSelected(AdapterView parent, View view, int position, long id) {
      }

      // なにも選択されなかったときの動作
      public void onNothingSelected(AdapterView parent) {
      }
    });
  }
}
XMLリソース
<ListView
  android:id="@+id/ListView"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
</ListView>

OnItemClickListener は List のアイテムがクリックされたときに、
OnItemSelectedListener は十字キー等により List のアイテムのフォーカスが移動したときに呼び出される

プログラムを実行すると...


こんな感じ!

RadioButton を使ってみた

RadioButton は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
      ↳ android.widget.Button
        ↳ android.widget.CompoundButton
          ↳ android.widget.RadioButton
を使用します
また、RadioButton をグループ化するために
java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.LinearLayout
        ↳ android.widget.RadioGroup
を使用します

というわけで、RadioButton をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class RadioButtonTest extends Activity {
  RadioGroup radioGroup;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.radiobuttontest);

    // RadioGroup の取得
    radioGroup = (RadioGroup) findViewById(R.id.RadioGroup);

    // 指定した ID の RadioButton を選択
    radioGroup.check(R.id.RadioButton01);
  
    // 選択されている RadioButton の ID を取得
    int Id = radioGroup.getCheckedRadioButtonId();
  
    // 選択されている RadioButton が変わったときに呼び出されるコールバックを登録
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
      public void onCheckedChanged(RadioGroup group, int checkedId) {
        // 選択されている RadioButton の取得
        RadioButton radioButton = (RadioButton) findViewById(checkedId);

        // RadioButton のテキストを取得
        String text = radioButton.getText().toString();
      }
    });
  }
}
XMLリソース
<RadioGroup
  android:id="@+id/RadioGroup"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
  <RadioButton
    android:id="@+id/RadioButton01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="First">
  </RadioButton>
  <RadioButton
    android:id="@+id/RadioButton02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="First">
  </RadioButton>
      ・
      ・
      ・      
</RadioGroup>

プログラムを実行すると...


こんな感じ!

Toast を使ってみた

Toast は
Java.lang.Object
  ↳android.widget.Toast
を使用します

というわけで、Toast をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class ToastTest extends Activity {
  private static final String TEXT = "Toast Test";
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); 

    // Toast を作成
  // 第3引数は表示時間(Toast.LENGTH_SHORT or Toast.LENGTH_LONG)
    Toast.makeText(this, TEXT, Toast.LENGTH_SHORT).show();
    // Toast.makeText(this, TEXT, Toast.LENGTH_LONG).show();
  }
}
プログラムを実行すると


こんな感じ!

Spinner を使ってみた

Spinner は
java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.AdapterView<T extends android.widget.Adapter>
        ↳ android.widget.AbsSpinner
          ↳ android.widget.Spinner
を使用します

というわけで、Spinner をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class SpinnerTest extends Activity {
  Spinner spinner;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.spinnertest);

    spinner = (Spinner) findViewById(R.id.Spinner01);

    // ArrayAdapter を作成
    ArrayAdapter<Charsequence> adapter =
      ArrayAdapter.createFromResource(
        this,
        R.array.order,
        android.R.layout.simple_spinner_item
      );

    // Adapter のレイアウトを設定
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // Spinner に Adapter を設定
    spinner.setAdapter(adapter);

    // Spinner に表示させるプロンプトを設定
    spinner.setPrompt("Spinner Prompt");

    // Spinner の選択されているアイテムを設定
    int default_item = 0;  // 0 = first, 1 = second,...
    spinner.setSelection(default_item);

    // Spinner のアイテムが選択された時に呼び出されるコールバックを登録
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
      // アイテムが選択された時の動作
      public void onItemSelected(AdapterView parent,View view, int position,long id) {
        // Spinner を取得
        Spinner spinner = (Spinner) parent;

        // 選択されたアイテムのテキストを取得
        String str = spinner.getSelectedItem().toString();
      }

      // 何も選択されなかった時の動作
      public void onNothingSelected(AdapterView parent) {
      }
    });
  }
}
XMLリソース
<Spinner
  android:id="@+id/Spinner
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"">
</Spinner>
strings.xml
<string-array name="order">
  <item>First</item>
  <item>Second</item>
  <item>Third</item>
</string-array>
プログラムを実行すると


こんな感じ!

ちなみに上と同じものを XML だけで作れます

XMLリソース
<Spinner
  android:id="@+id/Spinner
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:entries="@array/order"
  android:prompt="@string/spinnerprompt">
</Spinner>
strings.xml
<string name="spinnerprompt">Spinner Prompt</string>
リスナーなどの登録だけやればいいからこっちの方がすっきりしますね!


参考サイト
http://developer.android.com/intl/ja/reference/android/widget/Spinner.html

CheckBox を使ってみた

ChechBox は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
      ↳ android.widget.Button
        ↳ android.widget.CompoundButton
          ↳ android.widget.CheckBox
を使用します

というわけで、CheckBox をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;

public class CheckBoxTest extends Activity {
  CheckBox checkBox;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.checkboxtest);
  
    checkBox = (CheckBox) findViewById(R.id.CheckBox01);
  
    // CheckBox のチェック状態の設定
    checkBox.setChecked(true);
  
    // CheckBox がクリックされた時に呼び出されるコールバックを登録
    checkBox.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
        // クリックされた CheckBox を取得
        CheckBox checkBox = (CheckBox) v;

        // CheckBox のチェック状態を取得
        boolean checked = checkBox.isChecked();
      }
    });
  }
}

XMLリソース
<CheckBox
  android:id="@+id/CheckBox"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="CheckBox">
</CheckBox>

プログラムを実行すると...


こんな感じ!

Button を使ってみた

Buton は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
      ↳ android.widget.Button
を使用します

というわけで、いろいろと値を指定して Button をいじってみた

サンプルプログラム
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class ButtonTest extends Activity {
  Button button1;
  Button button2;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.buttontest);

    button1 = (Button) findViewById(R.id.Button01);
    button2 = (Button) findViewById(R.id.Button02);

    // Button がクリックされた時に呼び出されるコールバックを登録
    button1.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
        // Button のテキストを設定
        button1.setText("Clicked!");

        // Button のバックグラウンドのカラーを設定
        button1.setBackgroundColor(Color.RED);
      }
    });

    // Button のバックグラウンドのリソースを設定
    button2.setBackgroundResource(R.drawable.icon);
  }
}

XMLリソース
<button
  android:id="@+id/Button"
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:text="Button">
</button>

プログラムを実行すると...


クリック前

クリック後

こんな感じ!

TextView を使ってみた

TextView は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
を使用します

というわけで、いろいろと値を指定して TextView をいじってみた

サンプルプログラム
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;

public class TextViewTest extends Activity {
  TextView textView1;
  TextView textView2;
  TextView textView3;
  TextView textView4;
  TextView textView5;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.textview);

    textView1 = (TextView) findViewById(R.id.TextView01);
    textView2 = (TextView) findViewById(R.id.TextView02);
    textView3 = (TextView) findViewById(R.id.TextView03);
    textView4 = (TextView) findViewById(R.id.TextView04);
    textView5 = (TextView) findViewById(R.id.TextView05);

    // TextView のテキストを設定
    textView1.setText("Test");

    // TextView のテキストを取得
    String text = textView1.getText().toString();

    // TextView のサイズを指定
    textView2.setTextSize(24);

    // TextView のテキストの色を指定
    textView3.setTextColor(Color.RED);

    // TextView のバックグラウンドの色を指定
    textView4.setBackgroundColor(Color.BLUE);

    // TextView のバックグラウンドのリソースを指定
    textView5.setBackgroundResource(R.drawable.icon);
  }
}

XMLリソース
<textview 
  android:id="@+id/TextView" 
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:text="TextView">
</textview>

プログラムを実行すると...


こんな感じ!

Log を表示させてみた

Log の出力

Logクラス
java.lang.Object
  ↳ android.util.Log
を使用する

Log には以下のような種類がある
  • Log.d; DEBUG (デバッグ)
  • Log.e; ERROR (エラー)
  • Log.i; INFO (情報)
  • Log.v; VERBOSE (詳細)
  • Log.w; WARN (警告)
サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class LogTest extends Activity {
  private static final String TAG = "LogTest";
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Log の出力
    Log.d(TAG, "Debug");       // デバッグ
    Log.e(TAG, "Error");       // エラー
    Log.i(TAG, "Info");        // 情報
    Log.v(TAG, "Verbose");     // 詳細
    Log.w(TAG, "Warn");        // 警告
  }
}
これを実行すると以下のように出力される

 

出力された Log の表示 

[Window] -> [Show View] -> [Other...] を選択
または
左下にある [Show View as a fast view] -> [Other...] を選択

 

[Android] -> [LogCat] を選択し OKボタンを押すと LogCat が表示される

 

スクリーンキャプチャ

Eclipse で Emulator の現在の画面のスクリーンショットを取得する

Emulator を起動させ ScreenShot を撮りたい画面にしておく

[Window] -> [Open Perspective] -> [Other...] を選択
または
Eclipse 画面の右上にある [Open Perspective] をクリックし [Other...] を選択


[DDMS] を選んで [OK] すると DDMS 画面になる


[Devices] の右上にある [Screen Capture] をクリックするとスクリーンショットを撮ってくれる


[Refresh] を押すと再キャプチャ
[Save] を押せば保存できる


これは使えそう!!

Android Project の作成

Hello World Project

Eclipse を開いて
[File] -> [New] -> [Project...] に移動

[Android] -> [Android Project] を選択して [Next]


・Project name
・Build Target
・Application name
・Package name
・Create Activity
・Min SDK Version
を入力して Finish


これで Project は作成完了
今回はプログラムは何もいじらずそのまま実行してみる


[Run] -> [Run Configurations...] に移動

[Android Application] を右クリックして [New] を選択

Androidタブで Project と Launch Action を入力


Targetタブで AVD 選択して Apply


そして、[Run] を押すと...


できた!

一度 [Run Configurations] を設定しておけば、Project のフォルダを右クリックして [Run As] -> [Android Application] から実行できます

Eclipse で Android

Eclipse で Android を開発するための手順

1. Eclipse のインストール
2. Android SDK のインストール
3. Developer Tools のインストール
4. AVD の作成

------------------------------
1.
Eclipse (http://www.eclipse.org/) をダウンロードして解凍し、任意のフォルダに置く

2.
Android SDK (http://developer.android.com/sdk/index.html) をダウンロードして解凍し、任意のフォルダに置く

3.
Eclipseを開いて [Help] -> [Install New Software...] を選択

Addボタンから Name を適当に入力し、Location に
https://dl-ssl.google.com/android/eclipse/
を入力


表示された [Developer Tools] にチェックをいれ [Next] をおしてダウンロード


[Window] -> [Preferences] に移動

[Android] -> [SDK Location]でSDKのある場所を指定する


[Window] -> [Android SDK and AVD Manager] に移動

[Available Packages] から必要なツールにチェックをいれインストールする


4.
引き続き [Android SDK and AVD Manager] の [Virtual Devices] から [New] を選択し適当にAVDを作成


これで準備完了