Android のタッチ イベントに画像を応答させる必要があります。つまり、ユーザーは画面上で画像を移動できる必要があります。API Demos の TouchExampleActivity プロジェクトのコードを使用していますが、画像の応答が遅いことがわかります。
画像をドラッグすると、(エミュレーター上で) カーソルを追跡します。ゆっくりと移動すると、カーソルと画像から数ミリメートル離れているように少しだけ追跡します。速く動くと分離が悪くなります。
Android 提供のコード サンプルからの関連メソッドを次に示します。
public TouchExampleView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mIcon = context.getResources().getDrawable(R.drawable.icon);
mIcon.setBounds(0, 0, mIcon.getIntrinsicWidth(), mIcon.getIntrinsicHeight());
mDetector = VersionedGestureDetector.newInstance(context, new GestureCallback());
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
mDetector.onTouchEvent(ev);
return true;
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.translate(mPosX, mPosY);
canvas.scale(mScaleFactor, mScaleFactor);
mIcon.draw(canvas);
canvas.restore();
}
何か案は?理想的には、物理的な世界でテーブル上のオブジェクトを動かしているかのように、「自然な」方法でカーソル (指) に画像が追従する必要があります。