2013-03-06 106 views
-1

我的應用程序在某些版本和一些建議中不起作用。ViewFlipper兼容性

例如:

  • 三星4.04 - 作品
  • 摩托羅拉4.04 - 破碎
  • 三星2.3.6 - 作品
  • LG 2.2.2 - 破碎

如果有人對發生了什麼有所瞭解,請告訴我。我覺得這一定很簡單。

我的清單聲明min sdk = 4和max = 16。

我使用ViewFlipper來改變佈局,也許這就是問題所在。該應用僅在到達此部分時纔會關閉。

對不起,沒有崩潰日誌。

public class ImagesActivity extends Activity { 

private SensorManager mSensorManager; 
private ShakeEventListener mSensorListener; 
private ViewFlipper mFlipper; 
private Animation Animation, Animation2, Animation3, Animation4; 
private Random randomGenerator = new Random(); 

@SuppressLint("NewApi") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.imagesview); 

    final LinearLayout myLayout = (LinearLayout) findViewById(R.id.images_view); 

    //declaração ViewFlipper das telas 
    mFlipper = (ViewFlipper) findViewById(R.id.mFlipper1); 

    //declaração das var para o evento Shake 
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    mSensorListener = new ShakeEventListener(); 

    //declaração anim 1 - Slide from left 
    Animation = (Animation) AnimationUtils.loadAnimation(this, R.anim.slideleft); 
    Animation.setFillAfter(true); 

    //declaração anim 2 - Slide from right 
    Animation2 = (Animation) AnimationUtils.loadAnimation(this, R.anim.slideright); 
    Animation.setFillAfter(true); 

    //declaração anim 3 - Slide from down 
    Animation3 = (Animation) AnimationUtils.loadAnimation(this, R.anim.slideup); 
    Animation.setFillAfter(true); 

    //declaração anim 4 - Slide from up 
    Animation4 = (Animation) AnimationUtils.loadAnimation(this, R.anim.slidedown); 
    Animation.setFillAfter(true); 

    //Event Shake para execução das telas random 
    mSensorListener.setOnShakeListener(new ShakeEventListener.OnShakeListener() { 
      public void onShake() { 
       int random; 
       Random RandomView = new Random(); 
       int nextViewIndex = RandomView.nextInt(18); 
       while (nextViewIndex == mFlipper.getDisplayedChild()) { 
        nextViewIndex = RandomView.nextInt(18); 
       } 
       random = randomGenerator.nextInt(4); 

       if(random ==1) 
        myLayout.startAnimation(Animation); 
       else if(random ==2) 
        myLayout.startAnimation(Animation2); 
       else if(random ==3) 
        myLayout.startAnimation(Animation3); 
       else 
        myLayout.startAnimation(Animation4); 

       mFlipper.setDisplayedChild(nextViewIndex); 
      } 
      }); 
} 


@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

@Override 
    public void onResume() { 
    super.onResume(); 
    mSensorManager.registerListener(mSensorListener, 
     mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
     SensorManager.SENSOR_DELAY_UI); 
    } 

    @Override 
    public void onPause() { 
    mSensorManager.unregisterListener(mSensorListener); 
    super.onStop(); 
    } 
} 
+0

究竟是什麼被破壞?當它崩潰時會發生什麼?需要更多信息 – ElefantPhace 2013-03-06 03:43:12

+0

在其他手機上發生的錯誤,所以我沒有任何日誌可以更好地解釋它。發生的唯一情況是應用程序部隊在達到此活動時關閉。在此之前我還有其他兩項活動,其中一項完成,另一項是通向該項目的主屏幕。 – user2136747 2013-03-06 03:51:07

回答

1

不要這樣做

private Animation Animation, Animation2, Animation3, Animation4; 

更好的名字,和你確定你有18個不同的看法?

您還需要在您的ViewFlipper上設置動畫,而不是佈局

+0

謝謝。是的,我有18個觀點。但是,是的,我會嘗試調用viewflipper而不是佈局。並且動畫的名稱與強制應用程序關閉有關嗎? @ElefantPhace – user2136747 2013-03-06 20:28:17

+0

我改變了動畫名稱,實際上,現在我只有在它到達第一個隨機數的部分時才調用動畫。所以我不會在該部分之前聲明動畫。並將動畫改爲鰭狀肢。但它仍然不適用於這些版本和設備。 @ElefantPhace – user2136747 2013-03-07 12:16:14

+0

你將需要親自操作這些設備並自己測試,以便調試出錯的地方 – ElefantPhace 2013-03-07 15:46:24