2010/01/20(水)
ここではAndroid開発者向けにいくつかのTipsを紹介します。
例として記載するソースコードは、わかりやすさ重視で必要最低限のものしか記述していませんので、そのままでは動作しません。ある程度AndroidやJavaの知識を習得している方を対象としています。
●導入
・継承関係表
・コマンドラインからの操作
・端末各種 AVD設定表
●ダイアログ関連
・ダイアログのボタンイベント
・ダイアログのカスタマイズ
・ダイアログのキャンセル・閉じる
●View関連
・色を指定する
・フォントを変更する
・Viewコンポーネントの余白設定
・TextViewのカスタマイズ
・ImageViewのカスタマイズ
・Viewのクリックイベント
・Viewのタッチイベント
・リソースの定義
・レイアウトの部品化
・背景形状(shape)の定義
・リストビュー
・リストビューのカスタマイズ
●画面遷移
・遷移先へ値を渡す
・遷移元へ値を返す
・オブジェクトの受け渡し
・ページをめくる
●メニュー
・メニュー
・サブメニュー
・タブメニュー
●音声・画像
・Bitmapクラス
・音を鳴らす
●アニメーション
・Tweenアニメーション
・Tweenアニメーション for XML
・Frameアニメーション
●GPS
・GPSを使用する
・GPSのエミュレーション
●ファイル操作
・ファイルの入出力
・SDカードからファイルを読み込む
●ネットワーク
・ネットワークに接続する場合の定義
●その他
・Serializableインタフェースの警告
・コンパイラの警告を抑制
例として記載するソースコードは、わかりやすさ重視で必要最低限のものしか記述していませんので、そのままでは動作しません。ある程度AndroidやJavaの知識を習得している方を対象としています。
●導入
・継承関係表
・コマンドラインからの操作
・端末各種 AVD設定表
●ダイアログ関連
・ダイアログのボタンイベント
・ダイアログのカスタマイズ
・ダイアログのキャンセル・閉じる
●View関連
・色を指定する
・フォントを変更する
・Viewコンポーネントの余白設定
・TextViewのカスタマイズ
・ImageViewのカスタマイズ
・Viewのクリックイベント
・Viewのタッチイベント
・リソースの定義
・レイアウトの部品化
・背景形状(shape)の定義
・リストビュー
・リストビューのカスタマイズ
●画面遷移
・遷移先へ値を渡す
・遷移元へ値を返す
・オブジェクトの受け渡し
・ページをめくる
●メニュー
・メニュー
・サブメニュー
・タブメニュー
●音声・画像
・Bitmapクラス
・音を鳴らす
●アニメーション
・Tweenアニメーション
・Tweenアニメーション for XML
・Frameアニメーション
●GPS
・GPSを使用する
・GPSのエミュレーション
●ファイル操作
・ファイルの入出力
・SDカードからファイルを読み込む
●ネットワーク
・ネットワークに接続する場合の定義
●その他
・Serializableインタフェースの警告
・コンパイラの警告を抑制
2010/07/19(月)
色を指定する場合は、Colorクラスを使用します。
import android.app.Activity;
import android.graphics.Color;
public class MyClass extends Activity{
public void myMethod(){
TextView text = (TextView)this.findViewById(R.id.myText);
// Colorで定義された色
// BLACK, BLUE, CYAN, DKGRAY, GRAY, GREEN, LTGRAY, MAGENTA,
// RED, TRANSPARENT, WHITE, YELLOW
text.setTextColor(Color.WHITE);
// オリジナル色指定
// dimgray 0x696969
text.setTextColor(Color.rgb(105,105,105));
// オリジナル色指定(透明度含む)
// 透明度 0~255
// dimgray 0x696969
text.setTextColor(Color.argb(255,105,105,105));
}
}
import android.graphics.Color;
public class MyClass extends Activity{
public void myMethod(){
TextView text = (TextView)this.findViewById(R.id.myText);
// Colorで定義された色
// BLACK, BLUE, CYAN, DKGRAY, GRAY, GREEN, LTGRAY, MAGENTA,
// RED, TRANSPARENT, WHITE, YELLOW
text.setTextColor(Color.WHITE);
// オリジナル色指定
// dimgray 0x696969
text.setTextColor(Color.rgb(105,105,105));
// オリジナル色指定(透明度含む)
// 透明度 0~255
// dimgray 0x696969
text.setTextColor(Color.argb(255,105,105,105));
}
}
2010/07/21(水)
Viewコンポーネントを配置する際、マージンやパディングのような余白を指定したい場合は、ViewGroupのsetMargins()やViewのsetPadding()を使用します。
xmlだとこうなります。
import android.app.Activity;
import android.widget.*;
public class MyClass extends Activity{
public void myMethod(){
int FP = LinearLayout.LayoutParams.FILL_PARENT;
int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
TextView text = new TextView(this);
LinearLayout layout = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(WC,WC);
// マージンの設定 left:5px top:10px right:15px bottom:20px
params.setMargins(5,10,15,20);
// パディングの設定 left:5px top:10px right:15px bottom:20px
text.setPadding(5,10,15,20);
layout.addView(text,params);
}
}
import android.widget.*;
public class MyClass extends Activity{
public void myMethod(){
int FP = LinearLayout.LayoutParams.FILL_PARENT;
int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
TextView text = new TextView(this);
LinearLayout layout = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(WC,WC);
// マージンの設定 left:5px top:10px right:15px bottom:20px
params.setMargins(5,10,15,20);
// パディングの設定 left:5px top:10px right:15px bottom:20px
text.setPadding(5,10,15,20);
layout.addView(text,params);
}
}
xmlだとこうなります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5px"
android:layout_marginTop="10px"
android:layout_marginRight="15px"
android:layout_marginBottom="20px"
android:layout_margin="10px" // すべてに10px
android:paddingLeft="5px"
android:paddingTop="10px"
android:paddingRight="15px"
android:paddingBottom="20px"
android:padding="10px" // すべてに10px
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5px"
android:layout_marginTop="10px"
android:layout_marginRight="15px"
android:layout_marginBottom="20px"
android:layout_margin="10px" // すべてに10px
android:paddingLeft="5px"
android:paddingTop="10px"
android:paddingRight="15px"
android:paddingBottom="20px"
android:padding="10px" // すべてに10px
/>
</LinearLayout>
2010/07/23(金)
Serializableインタフェースを実装したクラスで、「シリアライズ可能クラスは long 型の static final serialVersionUID フィールドを宣言していません」という警告をなくしたい場合(警告が出ていても特に問題はありません)、警告文通りにserialVersionUIDを宣言します。
serialVersionUIDに指定する数値は、他のSerializableクラスとかぶらなければ、適当に決めて構いません。
serialVersionUIDに指定する数値は、他のSerializableクラスとかぶらなければ、適当に決めて構いません。
import java.io.Serializable;
public class MyClass implements Serializable{
private static final long serialVersionUID = 42L;
}
public class MyClass implements Serializable{
private static final long serialVersionUID = 42L;
}
2010/07/24(土)
ダイアログクラスAlertDialogには、あらかじめ3つのボタンが組み込まれており、インタフェースDialogInterfaceのonClickメソッドの第2引数にて、どのボタンが押されたか取得することができます。
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
public class MyClass extends Activity{
public void myMethod(){
// リスナーの作成
DialogInterface.OnClickListener lis = new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
switch(which){
case DialogInterface.BUTTON_POSITIVE:
case DialogInterface.BUTTON_NEUTRAL:
case DialogInterface.BUTTON_NEGATIVE:
}
}
};
// ダイアログの作成
AlertDialog.Builder bldr = new AlertDialog.Builder(this);
bldr.setTitle("Title");
bldr.setMessage("Message");
bldr.setPositiveButton("OK",lis); // 左ボタン
bldr.setNeutralButton("NG",lis); // 真ん中ボタン
bldr.setNegativeButton("キャンセル",lis); // 右ボタン
bldr.create();
bldr.show();
}
}
import android.app.AlertDialog;
import android.content.DialogInterface;
public class MyClass extends Activity{
public void myMethod(){
// リスナーの作成
DialogInterface.OnClickListener lis = new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
switch(which){
case DialogInterface.BUTTON_POSITIVE:
case DialogInterface.BUTTON_NEUTRAL:
case DialogInterface.BUTTON_NEGATIVE:
}
}
};
// ダイアログの作成
AlertDialog.Builder bldr = new AlertDialog.Builder(this);
bldr.setTitle("Title");
bldr.setMessage("Message");
bldr.setPositiveButton("OK",lis); // 左ボタン
bldr.setNeutralButton("NG",lis); // 真ん中ボタン
bldr.setNegativeButton("キャンセル",lis); // 右ボタン
bldr.create();
bldr.show();
}
}
|