Androidの例:Viewコンポーネントをカスタマイズすることで指に従って移動するウサギを実現
技術のポイント:
まずandroidを継承する必要があります.view.Viewクラス、
そしてonDraw()メソッドを書き換えてウサギのデフォルト表示位置を設定し、
最後にタッチイベントを書き直し、ウサギが指に従って移動するように設定します.
実例画像:
インスタンスのソース:
main_activity.xml :
RabbitView.java :
MainActivity.java :
まずandroidを継承する必要があります.view.Viewクラス、
そしてonDraw()メソッドを書き換えてウサギのデフォルト表示位置を設定し、
最後にタッチイベントを書き直し、ウサギが指に従って移動するように設定します.
実例画像:
インスタンスのソース:
main_activity.xml :
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:id="@+id/mylayout"
>
</FrameLayout>
RabbitView.java :
public class RabbitView extends View {
public float bitmapX; // X
public float bitmapY; // Y
public RabbitView(Context context) { //
super(context);
bitmapX = 290; // X
bitmapY = 130; // Y
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint(); // Paint
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(),
R.drawable.rabbit); //
canvas.drawBitmap(bitmap, bitmapX, bitmapY, paint); //
if (bitmap.isRecycled()) { //
bitmap.recycle(); //
}
}
}
MainActivity.java :
public class RabbitView extends View {
public float bitmapX; // X
public float bitmapY; // Y
public RabbitView(Context context) { //
super(context);
bitmapX = 290; // X
bitmapY = 130; // Y
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint(); // Paint
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(),
R.drawable.rabbit); //
canvas.drawBitmap(bitmap, bitmapX, bitmapY, paint); //
if (bitmap.isRecycled()) { //
bitmap.recycle(); //
}
}
}