タッチイベントを使用したときにXMLレイアウトで画像を移動する方法
-
10-12-2019 - |
質問
i画像を使ってアプリケーションを実装しました。私のアプリケーションでは、ユーザーがイメージに触れたときにイメージで使用しています。私は以下のように私のアプリケーションを実装しました:
((ImageView)findViewById(R.id.imageView1)).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
//I would like to Move image along with user finger touch code
break;
default:
break;
}
return false;
}
});
.
上記のコードから、私はユーザー指と一緒に画像を移動できません。
解決
これを達成するためのサンプルがあります:
hrefti.wordpress.com/2011/01/17/2011/01/17/2011/01/17/2011/01/17/2/2/0.nofollow"> http://blahti.wordpress.com/2011./ 01/17 /移動ビュー-PART-2 /
他のヒント
ただの提案、それは私のために働いています:
make ontouch()メソッドのTRUEに戻す
このコードを使用してこのを達成しています
package mani.droid.touchdrag;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
public class MainActivity extends Activity {
Bitmap img;
float x;
float y;
boolean isStarted = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
img = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
setContentView(new MyScreen(this));
}
public class MyScreen extends View {
Context context;
public MyScreen(Context context) {
super(context);
// TODO Auto-generated constructor stub
this.context = context;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
float xdiff = Math.abs( x - event.getX());
float ydiff = Math.abs( y - event.getY());
if( xdiff < 23 || ydiff < 23 ){
isStarted = true;
}
break;
case MotionEvent.ACTION_MOVE:
if(isStarted)
{
x = event.getX() - img.getWidth()/2;
y = event.getY() - img.getHeight()/2;
Log.v("X:" + x, "Y: " + y);
this.invalidate();
}
break;
case MotionEvent.ACTION_UP:
isStarted = false;
}
return true;
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawBitmap(img, x, y, null);
}
}
}
.
とその作業...
所属していません StackOverflow