2013-01-11 19 views
5

Die getBackgound() gibt BitmapDrawablebekommen Hintergrund ziehbar Sicht

Log.d(null,"drawable: " + v.getBackground()); 

Wie die ziehbar als R.drawable.xxx zu bekommen?

+1

Möchten Sie die ID Ihrer Hintergrundressource wissen? –

+0

Ich möchte das Zeichen erhalten, das ich aus meiner Sicht zugewiesen habe. Nach dem Erstellen von Hintergrund für meine Ansicht mit diesem: setBackgroundDrawable (R.drawable.pic) - Ich möchte den Wert von R.drawable.pic erhalten ... ist es möglich? – user1623176

+0

Überprüfen Sie meine Antwort unten. Hoffe, es wird Ihnen helfen –

Antwort

-3

Jedes Mal, wenn Sie den Hintergrund festlegen, legen Sie R.drawable.pic in einer Drawable-Member-Klasse fest.

v.setBackgroundDrawable(R.drawable.pic); 
int myDrawable = R.drawable.pic; 
+0

'R.drawable.pic' ist ein ganzzahliger Wert, nicht' Drawable' –

+0

hatten Sie GetDrawable() getestet? –

+1

Die Methode setBackgroundDrawable (Drawable) im Typ View ist für die Argumente (int) nicht anwendbar. und was ist intValue()? – user1623176

2

View-Klasse bietet keine dieser Methode können Sie verwenden:

myView.setBackgroundResource(int resId);erhält die ID des ziehbar Sie

festlegen möchten, aber es gibt kein Getter dieses Verfahrens nur :

myView.getBackgroundDrawable();Gibt die in der Ansicht eingestellte Zeichenfläche zurück.

Sie können die Ansicht erweitern, um Ihre eigene Datei zu erstellen, setBackgroundResource überschreiben, die ID in einer auxiliar-var speichern und dann die super-Methode aufrufen. Definieren Sie einen Getter, um das Hilfsprogramm var zurückzugeben, und Sie erhalten die gewünschte Funktion.

+0

Ich habe 2 Tasten, die den gleichen Hintergrund haben, der gezeichnet werden kann. Aber wenn ich den Hintergrund drawbar mache, ist das anders. Welche Eigenschaft wird sie (abgesehen von einem Knopf) gleich machen? – user1623176

+0

Zwei Zeichenobjekte, die nicht wahr sind, glaube ich nicht, aber Sie können ihr Gewicht überprüfen oder Ihre eigenen Schaltflächen erstellen, um die IDs zu überprüfen. – noni

+0

was meinst du mit seinem Gewicht? – user1623176

1
view.getBackgroundDrawable(); 

Verwenden Sie diese Option, um den Hintergrund zeichnungsfähig zu machen. Dadurch kehren ziehbar

bearbeiten

diese Arbeiten in Versionen unter Jelly Bean, wenn diese Antwort geschrieben wurde jetzt diese Methode in aktuellen Versionen veraltet

Neu Bearbeiten

Für Versionen nach jellybean versuchen

view.getBackground() 

Wenn jemand die Zeichnungsdateien vergleichen möchte, folgen Sie diesem answer

+0

Dies funktioniert nicht, es ist nicht in der Android-API. –

+0

Lösung für Jelly Bean? – msangel

+0

Probieren Sie @msangel view.getBackground(). .Tell mir, wenn es funktioniert, wird meine Antwort https://StackOverflow.com/a/27730795/1450401 – edwin