à Android 4.2 Mon application fonctionne bien, mais lorsque j'essaie de le tester à l'aide d'Android 4.0.4 J'ai cette erreur de message: J'utilise setbackgroud pour ajouter une animation groud pour ajouter une animation, comme ça Code p> AnimationDrawable animation = new AnimationDrawable();
animation.addFrame(getResources().getDrawable(R.drawable.d1), 200);
animation.addFrame(getResources().getDrawable(R.drawable.dio), 1000);
animation.addFrame(getResources().getDrawable(R.drawable.da1), 200);
animation.setOneShot(true);
view.setBackground(animation);
view.post(new Starter(animation));
4 Réponses :
qui a été ajouté dans API 16 A >, essayez SetbackgrackDrawable () code> p>
Bonjour Dmon, merci pour votre réponse, si j'utilise SetBackgroudDrawable () Eclipse dise que c'est obsolète
C'est bien, c'est parce qu'ils ont ajouté l'autre méthode. Il est intéressant de noter qu'ils ont décompressé l'autre que l'autre ne soit pas compatible à 100%. Bien que accordé, je n'ai pas apprécié comment l'ancienne méthode a fonctionné :)
Merci @dmon! Ça marche pour moi! Une question, je peux détecter le niveau d'API Android et utiliser uniquement la méthode obsolète aux versions précédentes à API 16?
pourquoi est maintenant obsolète
En plus de @dmon Réponse: Vous pouvez appeler la méthode appropriée de cette manière:
Essayez ceci, cela a fonctionné pour moi:
p>
Bitmap bitmap = BitmapFactory.decodeFile(new ImageLoader().fullPath + "/desiredFilename.png"); Resources res = getResources(); BitmapDrawable bitmapDrawable = new BitmapDrawable(res, bitmap); int sdk = android.os.Build.VERSION.SDK_INT; if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) ll.setBackgroundDrawable(bitmapDrawable); else ll.setBackground(bitmapDrawable);
C'était mon problème:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { imageButton.setOnTouchListener(popupWindow.createDragToOpenListener(imageButton)); }
Qu'y a-t-il dans MainActivity.java:271? Quel est le type de vue dans `View.setbackground (animation); ' ?
Lisez la DOC, le ferbackgroundDrawable n'existe pas avant l'API 16.