Android - mise en page d'arrière-plan par programmation
J'ai remarqué que les setBackground méthode pour la RelativeLayout objet est ciblé pour les API 16 (Android 4.1) et à la hausse, mais ma demande a la cible API 8 et je ne peux pas l'utiliser.
Est-il une autre solution pour ce problème (outre le marquage de la classe/méthode avec TargetApi(16) ou de la modification de la cible de l'API dans le manifeste)?
Merci!!!!
Modifier: Eclipse était buggé et il m'a montré la même erreur pour setBackgroundDrawable mais maintenant il semble fonctionner. Je vous remercie pour votre aide.
OriginalL'auteur sethengine | 2012-10-01
Vous devez vous connecter pour publier un commentaire.
Utilisation:
.setBackgroundColor(int)
(si vous êtes un réglage à une couleur).setBackgroundDrawable(Drawable)
(si vous êtes un réglage à unDrawable
type; elle est obsolète et a été remplacé par.setBackground(Drawable)
).setBackgroundResource(int)
(pour la définition d'une ressource à partir deR.java
)Si vous utilisez la seconde, assurez-vous de faire une condition de vérifier votre version de l'API:
... et il marque avec
@TargetApi(16)
et@SuppressWarnings("deprecation")
.Ne vous inquiétez pas au sujet de la peine--nous sommes là pour vous aider! Heureux que vous avez résolu le problème.
OriginalL'auteur Eric
Il dépend. Si vous souhaitez définir une couleur que l'arrière-plan, l'utilisation
setBackgroundColor()
. Pour un Drawable, vous pouvez utiliser le maintenant obsolète méthodesetBackgroundDrawable()
pour Api-dessous de 16, etsetBackground()
pour API 16 appareils. Vous pouvez également utilisersetBackgroundResource()
pour la définition d'une ressource que l'arrière-plan.Note que bien que beaucoup de méthodes sont marqué comme obsolète, je suis pas encore rencontré celui qui a effectivement été supprimé. Ainsi, alors que vous pouvez utiliser la méthode dépréciée même de l'API de 16, je vous recommande l'établissement de votre cible API à 16 et à l'aide d'un if else pour basculer entre les méthodes, en fonction de la version de l'API de l'appareil est en cours d'exécution.
OriginalL'auteur Raghav Sood
Utilisation setBackgroundDrawable() à la place. Il fait la même chose, mais c'est dépréciée depuis la nouvelle
setBackground()
méthode.OriginalL'auteur Samuel