2012年04月15日

第二回 アンドロイド開発におけるアプリケーションパッケージのフォルダの構成

アンドロイド開発におけるアプリケーションパッケージのフォルダの構成

ここで一度アンドロイド開発における基本としてアプリケーションパッケージのフォルダ構成を学んでいきたいと思います。
実際に私がアンドロイドアプリケーション開発においてコードを記述する場合、srcフォルダ内にあるjavaファイルをメインにコード記述を行うため、他のフォルダはどういった役目をもつのか疑問がのこっていました。何度かプログラミングを行うことである程度は理解は深まりましたが、一度ここでパッケージフォルダの構成について学習していきたいと思います。
でははじめにアンドロイドプロジェクトを新規作成した場合、アプリケーションパッケージのフォルダの構成はは次のようになっているはずです。
パッケージフォルダ構成.jpg

1.[src]フォルダ
作成したソースコードが保存されるフォルダであり、プログラムソースコードをもつ.javaの拡張子をもつファイルはこちらに保存されます。アプリケーションの機能を定義するためのソースコードを記述するメインのファイルです。

2.[gen]フォルダ
R.javaというファイルを生成するフォルダです。これはアプリケーション内部の部品がもつ固有のIDを定義づけるファイルということになります。
例えば次にある[res]フォルダ内にあるアプリケーションリソース(画像、値)を呼び出す際にR.java内で定義づけられた固有ID(定数)を使用することでそのリソースの読み込みが可能になります。
このファイルは自動生成される為、プログラミング時で直接ファイルに記述する必要はありません。

3. [res]フォルダ
[res]フォルダは画面のレイアウト、ウィジェットのレイアウト、テキストの値、画像などのアプリケーションリソースをxmlによって保存するフォルダです。

3.1 drawableフォルダ
drawableで始まるフォルダには画面で表示するための画像などの情報が保存されています。初めてアプリケーション作成時にはdrawableフォルダが3つもしくは4つになっていることに疑問をもたれることでしょう。これはそのリソースがその画面の大きさや解像度によって使い分けをする為にリソースフォルダがわけられており、その解像度に応じてリソースが使用されます。

3.2 layoutフォルダ
layoutフォルダにはそのままレイアウトの情報が保存されています。その中のファイルを開くと次のような画面がでてきます。これはウィジェットの内部にテキストビューとアナログ時計を組み合わせたレイアウトの記述例です。
main_xml.jpg
これはウィジェットのバックグラウンドを#f5deb3にしテキストビューにはresフォルダ内部のvalue(値のリソースを保存する)のname=helloの文字列を読み込み、さらにIDがanalogclock1のアナログ時計を読み込んでいる記述です。
少しわかりにくいとお思いでしょうが、その場合は画面左下のタブのGraphical Layoutを選択するとその記述がグラフィカル表示されその次の図のようになります。
analogclock.jpg
これなら画面上でグラフィカル操作ができるのでわかりやすくちょっとしたファンクションであれば簡単に設置することが可能になります。
これに関しては色々と自分なりに試してみてどうなるのか触ってみるのがよいのかなと思っています。

3.3 valuesフォルダ
次にValuesのフォルダについてですが前述したとおりテキストビューなどを読みこんだ際に表示する文字列や値を保存してあります。
これも上記の場合ではlayout内部にあるmain.xmlの@string/helloという記述によって、values内部のstrings.xml内にあるの文字列を読み込んでいます。
少しわかりにくいかとは思いますが実際にやってみると理解が深まるかと思います。
その他この[res]フォルダ内部に個別にレイアウト設定したい場合はxmlファイルを追加することで個別に設定が可能です。

4.assetsフォルダ
assetsフォルダには音声ファイルやフォントファイルなどのバイナリファイルとして保存されます。このフォルダに保存されたファイルはAssetsManagerなどを使用して呼び出すことができるようです。

5.AndroidManifest
アプリケーションを実行する上で必要な情報をAndroidへ伝えるのがこのマニフェストファイルです。アプリケーション実行時には必ず必要となるファイルでありアプリケーションが利用するコンポーネント宣言や使用するアンドロイドのバージョン等が記述されます。
このマニフェストで宣言されていないコンポーネントについてはシステムに認識されず実行されない為、宣言文の記述は必要不可欠となっているようです。このAndroidManifest.xmlの記述文については次回からのアプリケーション作成で再度見直しをしていきながら学習していきたいと思います。
posted by FAIR at 20:57| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2012年04月03日

第一回 メニューボタン・トーストプログラム

第一回 メニューボタン・トーストプログラム
今回は、アンドロイドエミュレータ上でメニューボタンを設置し、メニューボタンを押した時点でメッセージを表示するプログラムを作成します。
プログラム作成の流れとしましては、新規アプリケーションの作成、トーストプログラムの作成、メニューボタンの設置、メニューボタンを押したイベントの定義といった流れで記述していきます。
(1)アンドロイドアプリケーションの作成
前回エミュレータを起動させたようにNewProjectからAndroid Projectを選択してください。
以下はパッケージをmy.startでToastprogramという名称でプロジェクトの作成をおこなったものです。
パッケージ内のjavaファイルを開くとこのような画面が表示javaプログラムに表記されています。

package my.start;

import android.app.Activity;
import android.os.Bundle;

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


(2)メッセージ表示
トーストを使用してメッセージを表示させます。使用する[Toast]クラスメソッドの記述は以下のとおりです。
■Toastクラスメソッド
public static Toast makeText(Context context,CharSequence text,int duration)
public void show()

上記のメソッドを使用し、トーストを表示させて何かメッセージを表示させるプログラムは次のようになります。

package my.start;

import android.app.Activity;
import android.os.Bundle;

public class ToastprogramActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//トーストの表示
  Toast.makeText(this,"トーストプログラムテスト、無事に動作すれば成功です。",Toast.LENGTH_LONG).show();
}
}

このプログラムを実行すると次のようなメッセージが表示されます。
Toast.jpg

(3)メニューボタン作成
次にメニューボタン作成を行います。メニューボタンで使用する[Activity]クラスメソッドの書式は次の記述です。
■Activityクラスメソッド
public boolean onCreateOptionsMenu(Menu menu)
public abstract MenuItem add(int groupId, int itemId, int order,CharSequence title)
※第一引数:グループID 第二引数:グループID 第三引数:並び順 第四引数:表示するテキスト

それではメニューボタンを3つ設置したプログラムを作成してみます。
このプログラムを実行しますとエミュレータのメニューボタンを押した時点でプログラム中のメニューボタンが表示されるようになっています。

package my.start;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class Menu_bottunActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){

menu.add(Menu.NONE,0,0,"Menu1");
menu.add(Menu.NONE,1,1,"Menu2");
menu.add(Menu.NONE,2,2,"Menu3");
return super.onCreateOptionsMenu(menu);
}
}

(4)メニューボタンを押した時点でトーストでメッセージを表示
今回使用するメソッドは次のメソッドを使用します。メニュを押した時点で実行されるリソースIDを指定します。
■Activityクラスメソッド
public boolean onOptionsItemSelected(MenuItem item)
■MenuItemクラスメソッド
public abstract int getItemId()

次のプログラムではメニューボタンを3つ設置し、押した時点でToastで異なるメッセージを表示させています。
package my.start;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

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

//メニューボタンを押されたときに実行される
@Override
public boolean onCreateOptionsMenu(Menu menu){
//メニューを追加
menu.add(Menu.NONE ,0,Menu.NONE,"Menu1");
menu.add(Menu.NONE,1,Menu.NONE,"Menu2");
menu.add(Menu.NONE,2,Menu.NONE,"Menu3");
return super.onCreateOptionsMenu(menu);
}
//メニューが選択されたときに実行される
@Override
public boolean onOptionsItemSelected(MenuItem item){
//選択されたIDを確認
switch(item.getItemId()){
case 0:
Toast.makeText(this, "Menu1を選択",Toast.LENGTH_SHORT ).show();
break;
case 1:
Toast.makeText(this,"menu2を選択",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this,"menu3を選択",Toast.LENGTH_SHORT).show();
break;

}
return true;
}
}
このプログラムを実行すると次のような画面、メッセージ表示がされます。
メニューボタン表示.jpg

トースト表示.jpg
いかがでしたでしょうか。私自身Androidアプリケーション開発は不慣れな部分はありましたが、参考にして頂けましたら幸いです。それでは次回の更新まで。
posted by FAIR at 21:33| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。