So stellen Sie den Hintergrund ein:
RelativeLayout layout =(RelativeLayout)findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);
Ist der beste Weg, es zu tun?
java
android
background
drawable
Chad Bingham
quelle
quelle
remoteViews.setInt(R.id.btn_start,"setBackgroundResource", R.drawable.ic_button_start);
Antworten:
layout.setBackgroundResource(R.drawable.ready);
ist richtig.Eine andere Möglichkeit, dies zu erreichen, besteht darin, Folgendes zu verwenden:
Aber ich denke, das Problem tritt auf, weil Sie versuchen, große Bilder zu laden.
Hier ist ein gutes Tutorial zum Laden großer Bitmaps.
UPDATE:
getDrawable (int), das in API-Ebene 22
getDrawable(int )
veraltet ist, ist jetzt in API-Ebene 22 veraltet. Sie sollten stattdessen den folgenden Code aus der Support-Bibliothek verwenden:Wenn Sie auf den Quellcode von ContextCompat.getDrawable verweisen , erhalten Sie Folgendes :
Weitere Details zu ContextCompat
Ab API 22 sollten Sie die
getDrawable(int, Theme)
Methode anstelle von getDrawable (int) verwenden.UPDATE:
Wenn Sie die Support v4-Bibliothek verwenden, reicht Folgendes für alle Versionen aus.
Sie müssen Folgendes in Ihre App build.gradle einfügen
Oder verwenden Sie ResourceCompat in einer der folgenden APIs:
quelle
if(buttonBackground.equals(R.drawable.myDrawable))
woDrawable buttonBackground = myButton.getBackground();
ich diesen Fehler bekommemyActivity.getTheme()
für die neueste Version der Methode anstelle von null Parameter benötigen :myView.setBackground( getResources().getDrawable(R.drawable.my_background, activity.getTheme()));
AppCompatResources.getDrawable(this.getContext(), resId)
stattdessen verwenden, Google hat es bereits inAppCompat*
Widget / Ansicht implementiert , zB:android.support.v7.widget.AppCompatCheckBox
Versuche dies:
und für API 16 <:
quelle
getResources().getDrawable()
. Der richtige Code entsprichtlayout.setBackgroundResource(R.drawable.ready);
genau dem verwendeten OP. Das Problem liegt hier in der Größe der Bitmap.Jetzt in jeder Funktion wie onCreate, onResume
quelle
Sie können auch den Hintergrund für jedes Bild festlegen:
quelle
(.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
inneren Code implementierenIch verwende eine minSdkVersion 16 und eine targetSdkVersion 23.
Das Folgende funktioniert für mich, es wird verwendet
Anstatt zu verwenden:
Verwenden Sie lieber:
getActivity()
wird in einem Fragment verwendet, wenn der Aufruf von einer Aktivität verwendet wirdthis
.quelle
Wenn sich Ihre Hintergründe gerade im Zeichenordner befinden, versuchen Sie, die Bilder in Ihrem Projekt vom Zeichen- in den Zeichen-Nodpi-Ordner zu verschieben. Das hat bei mir funktioniert, anscheinend werden die Bilder sonst von ihnen selbst neu skaliert.
quelle
Verwenden Sie Buttermesser , um die zeichnbare Ressource an eine Variable zu binden, indem Sie diese am Anfang Ihrer Klasse hinzufügen (vor allen Methoden).
dann innerhalb einer Ihrer Methoden hinzufügen
Das ist alles was du brauchst
quelle
quelle
Probieren Sie es aus
ViewCompat.setBackground(yourView, drawableBackground)
quelle
Versuchen Sie diesen Code:
quelle
Versuche dies.
quelle
quelle
In der App / res / your_xml_layout_file .xml
quelle