2013-03-06 3 views
-1

Мое приложение не работает в некоторых версиях и некоторых советах.Совместимость с ViewFlipper

Например:

  • Samsung 4,04 - Работы
  • Motorola 4,04 - Сломанный
  • Samsung 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

+0

ошибка на другом телефоне, поэтому у меня нет журнала, который лучше объясняет это. Единственное, что происходит, это то, что приложение приближается к достижению этой активности. У меня есть еще 2 активности до этого, один из них заканчивается, другой - главный экран, который ведет к этому. – user2136747

ответ

1

Не делайте этого

private Animation Animation, Animation2, Animation3, Animation4; 

использовать лучшие имена, и вы уверены, что у вас есть 18 различных взглядов?

Вам также необходимо установить анимацию на ViewFlipper, а не на макет

+0

Спасибо. Да, у меня 18 просмотров. Но да, я попытаюсь вызвать viewflipper вместо макета. И действительно ли название анимации имеет значение для принудительного закрытия приложения? @ElefantPhace – user2136747

+0

Я изменил имена анимации, фактически, теперь я назвал анимацию только тогда, когда она достигла части первого случайного числа. Поэтому я не объявляю анимацию до этой части. А также изменила анимацию на флиппер. Но он все еще не работает на этих версиях и устройствах. @ElefantPhace – user2136747

+0

вам нужно будет взять свои руки на эти устройства и протестировать их самостоятельно, чтобы вы могли отлаживать ошибки – ElefantPhace

Смежные вопросы