Androidアプリ製作のいろいろ

役に立ったり面白かったり楽しかったり いろんなAndroidアプリケーションを作れるように いろいろ調べたり集めたり

ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2012年5月7日月曜日

記号、エスケープシークエンス、論理演算子

コーディングではとにかくたくさんの記号を使います。
適当に読んでいたので、まとめてみました。


記号繋がりで
・エスケープシークエンス・論理演算子
一緒にまとめました。


〓 〓 〓 〓 〓


◆読み方
!          エクスクラメーション

?          クエスチョン、はてな
"          ダブルクォーテーション、ダブルクォート、いんようふ
#          ナンバー、いげた、(シャープ) ※本来はシャープ記号ではない
$          ドル、ダラー、
%          パーセント
&          アンド、アンパサンド
+          プラス
-          マイナス、ハイフン
*          アステリスク、かける
/          スラッシュ、わる
\          バックスラッシュ
=          イコール
^          ハット、キャレット、アクサンシルコンフレックス
~          チルダ、なみダッシュ
'          アポストロフィ、シングルクォーテーション、
`          アクサングラーブ、バッククォート、
@          アットマーク
<          しょうなり、ひだりかくかっこ
>          だいなり、みぎかくかっこ
(          ひだりかっこ
)          みぎかっこ
{          ひだりちゅうかっこ
}          みぎちゅうかっこ
[          ひだりだいかっこ
]          みぎだいかっこ
;          セミコロン
:          コロン
,          コンマ
.         ピリオド、ドット
_         アンダーバー、アンダーライン、アンダースコア、したせん
|          バー、バーティカルライン、たてぼう
\          バックスラッシュ(¥(えん))

〓 〓 〓 〓 〓
◆エスケープシークエンス
print文等で記号をそのまま記述してしまうと「コードの一部」として扱われてしまうので
エスケープシークエンスとして入力して表示させる

ex. print文で ” (ダブルクォーテーション)を表示させる場合
●そのまま print” “ “ と記述すると、「”」はコードの一部とみなされ、表示されずエラーとなる
 避けるためにエスケープシークエンスで記述する
 print” \” “ と記述すると表示される


\"          ダブルクォーテーション
\'          シングルクォーテーション
\n         改行
\t          タブ
\b         バックスペース
\r          キャリッジリターン
\f          改ページ
\\           マーク
\uxxxx   Unicode文字

〓 〓 〓 〓 〓
◆論理演算子

&&         x && y
            xとyの両方がtrueの場合にtrueを返す。

||          x || y
xとyのいずれかがtrueの場合にtrueを返す。         

& x & y
xとyの両方がブール型且つ両方ともtrueの場合にtrueを返す。
両方の変数が整数型の場合はビットごとのAND演算を行う。

| x | y
xとyの両方がブール型且ついずれかがtrueの場合にtrueを返す。
          両方の変数が整数型の場合はビットごとのOR演算を行う。
^ x ^ y
xとyの両方がブール型且つxとyが異なった値の場合にtrueを返す。
両方の変数が整数型の場合はビットごとのXOR演算を行う。
! !x
xがfalse場合にtrueを返す。

2012年4月17日火曜日

画像ボタンをタップしている間、別の画像に差し替えるには

画面上のボタンをタップして何かの処理を行うときに、
画像を使ったボタンを使用することがあると思います。
このとき、ユーザがボタンを押していることを視覚的に理解しやすいように、
タップしている間はボタンがハイライトしているように見せることが有効です。
実装では、通常の画像とタップしている画像の2つを用意し、
タップしている間は画像を差し替える処理を行います。


まずは画面レイアウト
(main.xml)
==============================================================


    
==============================================================
注)ここではImageButtonクラスではなく、Buttonクラスを使用しています。

画面レイアウトについては、特別な記述は不要です。
Buttonクラスの背景に android:background=" " で画像を定義します。
定義する画像は
「通常時に表示する画像=ボタンを押していない時に表示する画像」を設定します。


次にActivityを実装します。
(ButtonTapDemoActivity)
==============================================================
public class ButtonTapDemoActivity extends Activity {

 private Button bt_start;
 private Button bt_stop;

 /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        bt_start   = (Button) findViewById(R.id.bt_start);
        bt_stop    = (Button) findViewById(R.id.bt_stop);

  bt_start.setOnTouchListener(new View.OnTouchListener() {
   @Override
   public boolean onTouch(View arg0, MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
     bt_start.setBackgroundResource(R.drawable.bt_start_tap);
    } else if (event.getAction() == MotionEvent.ACTION_UP) {
     bt_start.setBackgroundResource(R.drawable.bt_start_);
    }
    return false;
   }
  });

  bt_stop.setOnTouchListener(new View.OnTouchListener() {
   @Override
   public boolean onTouch(View arg0, MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
     bt_stop.setBackgroundResource(R.drawable.bt_stop_tap);
    } else if (event.getAction() == MotionEvent.ACTION_UP) {
     bt_stop.setBackgroundResource(R.drawable.bt_stop_);
    }
    return false;
   }
  });
    }
}
==============================================================

Buttonクラスのインスタンスを生成します。
画面レイアウトのidと関連付けし、タッチリスナーを登録します。
onTouchイベントで、
ACTION_DOWN時にハイライト画像をセット、
ACTION_UP時に通常時の画像に戻すよう記述します。
そうすると、ボタンをタップしている間の画像が切り替わります。

「測定開始」ボタンを押すと



このように画像が切り替わります。





参考)ボタンに使用した画像

bt_start_


bt_start_tap


bt_stop_


bt_stop_tap

2012年4月4日水曜日

Java Hello!World! ~ クラス、メソッド

javaを使ってコンソール(コマンドプロンプト)に文字を表示させるプログラム。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

このプログラムを実行すると、コンソールに「Hello World!」と表示されます。
一番最初に習った、一番簡単なプログラム。


HelloWorldというクラス(class)の中に
mainというメソッド(method)が入っていて
その中に「コンソールの表示しろ」という命令System.out.println()があります。



Javaのプログラムはプラモデルの設計図のような作り方になっており
「ロボットを作る」というプログラムがあったとすると
クラス~メソッド~命令文は大まかに言うと

大元の設計図 クラス{

    腕を作る方法を集めた部分 メソッド1{
    右腕を作る命令;
    左腕を作る命令;
    }

    足を作る方法を集めた部分 メソッド2{
    右足を作る命令;
    左足を作る命令;
    }

  ・・・
}

という状態になっています。


どんなに複雑なプログラムでも
どんなに面白い事をするアプリでも
基本的にはこの作りと変わりません。
「小さなブロックがいっぱいあって、それをくっつけていく」

ただ、JavaやAndroidのプログラミングは
その小さいブロックが山ほどあって
ブロックの組み立て方が山ほどあるだけです。

いっぱい組み立てて、楽しいものを作りたいですね。