2011年3月14日月曜日

Androidその21 ~自作3~

どうも、69です。

やっとできました。
簡単なものですが。


画面タッチを検出してそこに
画像を表示させるだけ

っていうホントに簡単なもの。
で、今までエラーしていたのは
Tomcat関係なさそう・・・
自分のミスでした。
具体的に言うと、TouchViewクラスからオブジェクトの生成をし忘れてまして。。


で、このソースを公開したら
しばらくブログ公開はストップしようかと。
うち、停電の地域に入ってるので。

では↓

*****Appli.java*******************************************

package com.blogspot.androidid.appli1;

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

public class Appli1 extends Activity {
    /** Called when the activity is first created. */

private AppliView appliview;
private TickHandler tickHandler;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        appliview=new AppliView(this);
        setContentView(appliview);
    }
  
    @Override
    public void onResume(){
     super.onResume();
     tickHandler=new TickHandler();
     tickHandler.sleep(0);
    }
  
    @Override
    public void onPause(){
     super.onPause();
     tickHandler=null;
    }
  
    public class TickHandler extends Handler{
     @Override
     public void handleMessage(Message msg){
     appliview.invalidate();
     if(tickHandler != null) tickHandler.sleep(100);
     }
    
     public void sleep(long delayMills){
     removeMessages(0);
     sendMessageDelayed(obtainMessage(0),delayMills);
     }
    }
}

**********************************************************


*****AppliView.java******************************************

package com.blogspot.androidid.appli1;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.MotionEvent;

public class AppliView extends View{
private int X=0;
private int Y=0;
private int Action=-999;
private Bitmap image;

public AppliView(Context context){
super(context);
setBackgroundColor(Color.BLUE);

setFocusable(true);
Resources r=context.getResources();
image=BitmapFactory.decodeResource(
r,R.drawable.android);
}


@Override
protected void onDraw(Canvas canvas){
int w=image.getWidth();
int h=image.getHeight();
if(Action != -999)
canvas.drawBitmap(image,X-(w/2),Y-(h/2),null);
}

@Override
public boolean onTouchEvent(MotionEvent event){
X=(int)event.getX();
Y=(int)event.getY();
Action=event.getAction();
return true;
}
}


**********************************************************


解説はまた今度。いつかは未定ですが。

おしまい。

0 件のコメント:

コメントを投稿