容量2GB!アクセス解析&動画ファイルも可能な無料ブログ。アフィリエイト完全対応。
  最新画像一覧   /    おもしろブログが満載! シャッフル ブログ  /     無料登録  

アンドロイドアプリ開発Key入力

  1. 2010/07/22(木) 12:16:28|
  2. android|
  3. トラックバック:1|
  4. コメント:0
KeyEventを試してみます。
Activityの onKeyDown , onKeyUp をOverrideします。
キーを押すとLogCatに表示されます。



public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_DPAD_CENTER){
Log.d("Test", "keyDown:DPAD_CENTER");
}else if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT){
Log.d("Test", "keyDown:DPAD_LEFT");
}else if(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){
Log.d("Test", "keyDown:DPAD_RIGHT");
}else if(keyCode==KeyEvent.KEYCODE_DPAD_UP){
Log.d("Test", "keyDown:DPAD_UP");
}else if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN){
Log.d("Test", "keyDown:DPAD_DOWN");
}

Log.d("Test", "KeyDown:keyCode="+keyCode);
return super.onKeyDown(keyCode,event);
}

@Override
public boolean onKeyUp(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_DPAD_CENTER){
Log.d("Test", "keyUp:DPAD_CENTER");
}else if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT){
Log.d("Test", "keyUp:DPAD_LEFT");
}else if(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){
Log.d("Test", "keyUp:DPAD_RIGHT");
}else if(keyCode==KeyEvent.KEYCODE_DPAD_UP){
Log.d("Test", "keyUp:DPAD_UP");
}else if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN){
Log.d("Test", "keyUp:DPAD_DOWN");
}

Log.d("Test", "KeyUp:keyCode="+keyCode);
return super.onKeyDown(keyCode,event);
}
}


画像移動wait

  1. 2010/07/21(水) 23:37:25|
  2. android|
  3. トラックバック:0|
  4. コメント:0
描画のwaitを探していたら
クジラ飛行机さんの記事を見つけました。
ソースを借用することにします。



//クジラ飛行机さんから借用
public class RedrawHandler extends Handler {
private View view;
private int delayTime;
private int frameRate;
public RedrawHandler(View view, int frameRate) {
this.view = view;
this.frameRate = frameRate;
}
public void start() {
this.delayTime = 1000 / frameRate;
this.sendMessageDelayed(obtainMessage(0), delayTime);
}
public void stop() {
delayTime = 0;
}
@Override
public void handleMessage(Message msg) {
view.invalidate();
if (delayTime == 0) return; // stop
sendMessageDelayed(obtainMessage(0), delayTime);
}

}







public ImageView(Context context) {
super(context);

posX=10;
posY=10;
speed=1f;
Resources r = getResources();
bmp = BitmapFactory.decodeResource(r, R.drawable.cara1);

RedrawHandler handler=new RedrawHandler(this,32);
handler.start();
}

protected void onDraw(Canvas canvas) {
//サイズ取得
int gamenHeight=canvas.getHeight();
int bmpHeight=bmp.getHeight();

//移動
speed*=1.05f;
posY+=speed;
if(posY<10&&speed<0){
speed=-speed/10;
posY=10;
}
if(posY>gamenHeight-bmpHeight-50&&speed>0){
speed=-speed/10;
posY=gamenHeight-bmpHeight-50;
}

//描画
canvas.drawBitmap(bmp,posX, posY,null);
}
}



android 画像を動かしてみた

  1. 2010/07/21(水) 22:05:40|
  2. android|
  3. トラックバック:0|
  4. コメント:0
前回のソースを変更して上下に移動するようにしたよ。
onDraw()メソッドの最後のinvalidate()で再描画してるけど、
いつ描画されるのかタイミングがわからないので、とても気持ち悪いコードです。



public class ImageView extends View {

float posX;
float posY;
float speed;
private Bitmap bmp;

public ImageView(Context context) {
super(context);

posX=10;
posY=10;
speed=1f;
Resources r = getResources();
bmp = BitmapFactory.decodeResource(r, R.drawable.cara1);
}

protected void onDraw(Canvas canvas) {
//サイズ取得
int gamenHeight=canvas.getHeight();
int bmpHeight=bmp.getHeight();

//移動
speed*=1.05f;
posY+=speed;
if(posY<10&&speed<0){
speed=-speed/10;
posY=10;
}
if(posY>gamenHeight-bmpHeight-50&&speed>0){
speed=-speed/10;
posY=gamenHeight-bmpHeight-50;
}

//描画
canvas.drawBitmap(bmp,posX, posY,null);
invalidate();//気持ち悪い
}
}



android 画像を表示してみた

  1. 2010/07/21(水) 21:22:05|
  2. android|
  3. トラックバック:0|
  4. コメント:0
とりあえず画像を表示してみた。

drawableフォルダにcara1.pngをコピー
自動でR.javaが更新される。




public class ImageView extends View {

float posX;
float posY;
private Bitmap bmp;

public ImageView(Context context) {
super(context);

posX=10;
posY=10;
Resources r = getResources();
bmp = BitmapFactory.decodeResource(r, R.drawable.cara1);
}

protected void onDraw(Canvas canvas) {
//描画
canvas.drawBitmap(bmp,posX, posY,null);
}
}




実行結果
頭と胴体だけ。手足はないです。チンコみたいなキャラだ。


パソコン買いました

  1. 2010/07/21(水) 19:12:12|
  2. android|
  3. トラックバック:0|
  4. コメント:0
google androidのアプリ開発は始めようと環境を作り
エミュレーターを動かしてみると

遅い

あまりにも遅い。
そこで新しくパソコンを買うことにしました。
10万円投じてi7-860のパソコン購入。
これなら問題なく開発できそうだ。
あぁ実機も必要だよな。それはまた後で。

DTIブログって?

前のページ