2012-07-30 84 views
0

我有这段代码:
openHandlera = new ViDBOpenHandler(this);播放特定图像时播放音乐android

  Runnable ru = new Runnable(){  
      public void run(){  

       int imageArrr[] = new int[2];  
       imageArrr[0] = R.drawable.crossone;  
       imageArrr[1] = R.drawable.blackone;  

       int n = (int)(Math.random()*2);  

       theIm.setImageResource(image[n]);  
       if(n == 0) {  
        Log.v("Result", "n is 0 now");  
        startTimea = System.currentTimeMillis();  
        final SoundGenerator task=new SoundGenerator();  
        task.keepPlaying(true);  
        task.setLoudness(audioLoudnessa);  
        task.execute(audioFrequencya);  

        new Handler().postDelayed(new Runnable() {  
          public void run()   {       
          task.keepPlaying(false);  
         }  
        }, 1000);  
       }  
       new Handler().postDelayed(new Runnable() {  
        public void run() {      

         finish();  
        }  
       }, 30000);  

        Log.v("test", "is"+ startTimea);  
        theIm.postDelayed(this, 3000); //set to go off again in 3 seconds.  
      }  
     };  
     theIm.postDelayed(ru,1500);   

在这段代码我想说的是,如果我的形象是等于imageArrr [1],然后播放音乐一秒钟,并设置当前时间开始的时间。问题是我用if(n == 0)。但它似乎并不承认这种实施方式。因为它不会去,如果我听不到声音,甚至它不打印任何东西。任何人都可以指导我该怎么做?

回答

1
int n = (int)(Math.random()*2);  

你是随机产生的n价值,你没有得到任何时候

以使条件if(n == 0)从未变成真。你没有得到正确的输出。

编辑:您可以使用这样

if(n>2> 
    int image =imageArrr[0]; 
else 
    int image =imageArrr[1]; 
+0

但我想带imageArrr之间的随机图像[0]和imageArrr [1]。那么我应该如何使用随机在这种情况下?我应该如何设定我的状况? – androidGirl 2012-07-30 09:22:45

+0

这不是因为索引,n可以是0或1吗? PLZ指导我。 – androidGirl 2012-07-30 09:24:25

+0

看到我编辑的答案 – MAC 2012-07-30 09:25:23