Pour définir l'arrière-plan:
RelativeLayout layout =(RelativeLayout)findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);
Est-ce la meilleure façon de le faire?
java
android
background
drawable
Chad Bingham
la source
la source
remoteViews.setInt(R.id.btn_start,"setBackgroundResource", R.drawable.ic_button_start);
Réponses:
layout.setBackgroundResource(R.drawable.ready);
est correct.Une autre façon d'y parvenir est d'utiliser les éléments suivants:
Mais je pense que le problème se produit parce que vous essayez de charger de grandes images.
Voici un bon tutoriel sur la façon de charger des bitmaps volumineux.
MISE À JOUR:
getDrawable (int) déconseillé au niveau API 22
getDrawable(int )
est désormais déconseillé au niveau API 22. Vous devez plutôt utiliser le code suivant de la bibliothèque de support:Si vous vous référez au code source de ContextCompat.getDrawable , il vous donne quelque chose comme ceci:
Plus de détails sur ContextCompat
À partir de l'API 22, vous devez utiliser la
getDrawable(int, Theme)
méthode au lieu de getDrawable (int).MISE À JOUR:
Si vous utilisez la bibliothèque de support v4, les éléments suivants seront suffisants pour toutes les versions.
Vous devrez ajouter les éléments suivants dans votre application build.gradle
Ou en utilisant ResourceCompat, dans n'importe quelle API comme ci-dessous:
la source
if(buttonBackground.equals(R.drawable.myDrawable))
oùDrawable buttonBackground = myButton.getBackground();
j'obtiens cette erreur: snag.gy/weYgA.jpgmyActivity.getTheme()
de la dernière version de la méthode, au lieu du paramètre null:myView.setBackground( getResources().getDrawable(R.drawable.my_background, activity.getTheme()));
AppCompatResources.getDrawable(this.getContext(), resId)
place, Google l'a déjà implémenté dans unAppCompat*
widget / vue, par exemple:android.support.v7.widget.AppCompatCheckBox
Essaye ça:
et pour l'API 16 <:
la source
getResources().getDrawable()
. Le bon code estlayout.setBackgroundResource(R.drawable.ready);
exactement comme l'OP utilisé. Le problème vient ici de la taille du bitmap.maintenant, à l'intérieur de n'importe quelle fonction comme onCreate, onResume
la source
Vous pouvez également définir l'arrière-plan de n'importe quelle image:
la source
(.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
intérieur du codeJ'utilise un minSdkVersion 16 et targetSdkVersion 23.
Ce qui suit fonctionne pour moi, il utilise
À la place d'utiliser:
Utilisez plutôt:
getActivity()
est utilisé dans un fragment, si vous appelez depuis une activitéthis
.la source
Si vos arrière-plans se trouvent dans le dossier drawable, essayez de déplacer les images du dossier drawable vers drawable-nodpi dans votre projet. Cela a fonctionné pour moi, semble que sinon les images sont redimensionnées par eux-mêmes ..
la source
Utilisez butterknife pour lier la ressource drawable à une variable en l'ajoutant en haut de votre classe (avant toute méthode).
puis à l'intérieur de l'une de vos méthodes, ajoutez
C'est tout ce dont vous avez besoin
la source
la source
Essayez
ViewCompat.setBackground(yourView, drawableBackground)
la source
Essayez ce code:
la source
essaye ça.
la source
la source
À l'intérieur de l'application / res / your_xml_layout_file .xml
la source