In meiner App möchte ich ein Bild nach dem Zufallsprinzip auswählen und in der Mitte des Bildschirms platzieren. Danach können Animationen ausgeführt werden, das Bild wird verschoben und anschließend auf seine Ursprungsposition zurückgesetzt. Dann möchte ich ein neues Bild des Schaltergehäuses wählen, aber das Bild bleibt immer gleich. Wie kann ich es reparieren?android - wiederhole eine switch statement
public class MainActivity extends Activity implements OnGestureListener
{
private ImageView imageView;
float x1,x2;
float y1, y2;
public int sco = 0;
TextView score;
final Random rand = new Random();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageview1);
imageView.setImageResource(getMyRandomResId());
score = (TextView)findViewById(R.id.textView2);
}
int imag = rand.nextInt(4);
int getMyRandomResId() {
switch (imag) {
case 0:
return R.drawable.a;
case 1:
return R.drawable.b;
case 2:
return R.drawable.c;
default:
return R.drawable.d;
}
}
private boolean animationRunning = false;
public boolean onTouchEvent(MotionEvent touchevent)
{
final ViewPropertyAnimator animator = imageView.animate();
switch (touchevent.getAction())
{
case MotionEvent.ACTION_DOWN:
{
x1 = touchevent.getX();
y1 = touchevent.getY();
break;
}
case MotionEvent.ACTION_UP:
{
x2 = touchevent.getX();
y2 = touchevent.getY();
if (!animationRunning) {
//left to right sweep event on screen
if (x1 < x2 && (x2-x1)>=(y1-y2) && (x2-x1)>=(y2-y1)) {
animationRunning = true;
animator.translationX(imageView.getWidth() * 2)
.setDuration(180)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
if(getMyRandomResId() == R.drawable.ballgrue) {
sco++;
}
imageView.setTranslationX(0);
imageView.setImageResource(getMyRandomResId());
animationRunning = false;
}
})
.start();
}
}
}
}
}
}
Kann ich den 'getMyRandomResId()' Teil in einem Verfahren setzen, ohne zu verlieren? –
Schritt durch Ihren Code mit einem Debugger. Dies ist wahrscheinlich der schnellste Weg, um die Ursache des Problems zu finden. –
Aber wenn eine Methode fehlt, was wird der Debugger sagen? –