ユーザーがスワイプジェスチャーをした後にアニメーションを開始したいと思います。私はアニメーションを設定するクラスとスワイプを検出しているクラスを持っています。私の問題は、私がそれらをどのように組み合わせるのか分からないことです。私はジェスチャーなしでアニメーションを開始したくありません。 GestureDetectorのif文でアニメーションメソッドを開始する必要がありますか?そして、もし私がそれを行う必要がある場合は、そこからアニメーションを開始するにはどうすればいいですか?android - 開始アニメーション
public class MainActivity extends Activity implements OnGestureListener
{
private ImageView imageView;
private BitmapDrawable ball;
float x1,x2;
float y1, y2;
Context mContext = getApplicationContext();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageview1);
}
public boolean onTouchEvent(MotionEvent touchevent)
{
switch (touchevent.getAction())
{
// when user first touches the screen we get x and y coordinate
case MotionEvent.ACTION_DOWN:
{
x1 = touchevent.getX();
y1 = touchevent.getY();
break;
}
case MotionEvent.ACTION_UP:
{
x2 = touchevent.getX();
y2 = touchevent.getY();
//if left to right sweep event on screen
if (x1 < x2 && (x2-x1)>=(y1-y2) && (x2-x1)>=(y2-y1))
{
imageView.animate()
.translationX(-imageView.getWidth()) //in this case Image goes to the left
.setDuration(180) //it's optional
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
}
})
.start();
Toast.makeText(this, "Left to Right Swap Performed", Toast.LENGTH_LONG).show();
}
// if right to left sweep event on screen
if (x1 > x2 && (x1-x2)>=(y1-y2) && (x1-x2)>=(y2-y1))
{
imageView.animate()
.translationX(imageView.getWidth()) //in this case Image goes to the right
.setDuration(180) //it's optional
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
}
})
.start();
Toast.makeText(this, "Right to Left Swap Performed", Toast.LENGTH_LONG).show();
}
// if UP to Down sweep event on screen
if (y1 < y2 && (y2-y1)>=(x1-x2) && (y2-y1)>=(x2-x1))
{
Toast.makeText(this, "UP to Down Swap Performed", Toast.LENGTH_LONG).show();
}
//if Down to UP sweep event on screen
if (y1 > y2 && (y1-y2)>=(x1-x2) && (y1-y2)>=(x2-x1))
{
Toast.makeText(this, "Down to UP Swap Performed", Toast.LENGTH_LONG).show();
}
break;
}
}
return false;
}
ViewPropertyAnimator?私はそれを検出クラスに実装できますか?そしてはい、私はスワイプで画像をアニメートしたいです –
どのようなアニメーションを実装しますか? – nullbyte
私はそれがViewAnimationだと思います。アニメーションは動きますが、イメージは右から中央から移動していますが、アニメーションがスワイプを待つようにGestureDetectorにどのように接続するのかわからないので、アプリケーションを起動するとアニメーションが開始されます –