Java android-重复switch语句

Java android-重复switch语句,java,android,Java,Android,在我的应用程序中,我想随机选取一幅图像并将其放在屏幕中央。之后,可以执行动画,然后移动图像并将其重置为原始位置。然后我想选择开关盒的新图像,但图像始终保持不变。我怎样才能修好它 public class MainActivity extends Activity implements OnGestureListener { private ImageView imageView; float x1,x2; float y1, y2;

在我的应用程序中,我想随机选取一幅图像并将其放在屏幕中央。之后,可以执行动画,然后移动图像并将其重置为原始位置。然后我想选择开关盒的新图像,但图像始终保持不变。我怎样才能修好它

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();           
                        }
            }
           }
           }
        }
}
public类MainActivity扩展活动实现OnTestureListener
{       
私人影像视图;
浮点x1,x2;
浮动y1,y2;
公共int sco=0;
文本视图分数;
最终随机数=新随机数();
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{        
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(imageView)findViewById(R.id.imageview1);
setImageResource(getMyRandomResId());
分数=(TextView)findViewById(R.id.textView2);
}
int imag=rand.nextInt(4);
int getMyRandomResId(){
开关(imag){
案例0:
返回R.drawable.a;
案例1:
返回R.drawable.b;
案例2:
返回R.drawable.c;
违约:
返回R.可提取d;
}
}
私有布尔animationRunning=false;
公共布尔onTouchEvent(MotionEvent touchevent)
{
最终视图属性yanimator animator=imageView.animate();
开关(touchevent.getAction())
{
case MotionEvent.ACTION\u DOWN:
{
x1=touchevent.getX();
y1=touchevent.getY();
打破
}
case MotionEvent.ACTION\u UP:
{
x2=touchevent.getX();
y2=touchevent.getY();
如果(!animationRunning){
//屏幕上从左向右扫描事件
如果(x1=(y1-y2)&&(x2-x1)>=(y2-y1)){
animationRunning=true;
animator.translationX(imageView.getWidth()*2)
.setDuration(180)
.setListener(新的AnimatorListenerAdapter(){
@凌驾
AnimationEnd上的公共无效(Animator动画){
if(getMyRandomResId()==R.drawable.ballgrue){
sco++;
}
imageView.setTranslationX(0);
setImageResource(getMyRandomResId());
animationRunning=false;
}
})
.start();
}
}
}
}
}
}
你得到这张照片的原因只是


希望对您有所帮助

我可以在不丢失
getMyRandomResId()
部分的情况下将其放入方法中吗?使用调试器逐步检查您的代码。这可能是找到问题根源的最快方法。但是如果一个方法丢失了,调试器会怎么说?只需移动
int imag=rand.nextInt(4)
方法内部
int getMyRandomResId()
不清楚您想要什么。要获得另一个随机数,只需将语句放入函数中,因此,每次调用函数时,都会生成一个新的随机数。无论何时需要另一个映像,只需调用该函数,将其放入循环或任何位置
            int getMyRandomResId() {

     int imag = rand.nextInt(4);
                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;
            }
        }