2013-01-24 2 views

Antwort

18

Verwenden

Drawable[] drawables = textView.getCompoundDrawables(); 

Auch wenn Sie zwei ziehbar vergleichen möchten.

Bitmap bitmap = ((BitmapDrawable)drawables[1]).getBitmap(); 
Bitmap bitmap2 = ((BitmapDrawable)getResources().getDrawable(R.drawable.twt_hover)).getBitmap(); 

if(bitmap == bitmap2) 
    { 
     //Code blcok 
    } 
+2

Ich denke nicht, es ist ein guter Weg, um die App erstellen zwei Bitmaps und vergleichen Sie sie für jeden Klick auf ein TextView, richtig? –

+0

wahrscheinlich richtig, aber ich fand diese Antwort auf diesen Thread http://StackOverflow.com/Questions/9125229/Compared-Towe-drawables-in-android –

+6

getCompoundDrawables() gibt sie in der angegebenen Reihenfolge Links, oben, rechts, unten – defhlt

2

Ich denke, dass Sie textView.getCompoundDrawables() verwenden sollten; Wie für das Erhalten von ziehbaren Top ich würde denken, es wäre die zweite ziehbare zB

+0

Sie änderten die Frage) – Leonidos

+0

ich änderte die Frage? – Raigex

2

Sie können nicht zeichnen ID in Runtime. TextView verwendet die ID nur im Konstruktor, um das entsprechende Zeichen zu laden. Nach dem Zeichen ist ID geladen ist weg.

In einigen Fällen gibt es überhaupt keine ID, die gezeichnet werden kann. drawableTop kann ein RGB-Farbwert sein.

5

Zuerst geben Sie Ihre TextView eine ID, so dass Sie es in Ihrem Activity finden:

<TextView 
    android:id="@+id/textView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="20dip" 
    android:drawableTop="@drawable/new" /> 

Zweitens in Ihrem Activity Ihre TextView finden und die Verbindung Drawables in Ihrem onCreate Methode erhalten, nachdem setContentView Aufruf:

TextView textView = (TextView) findViewById(R.id.textView); 
// Left, top, right, bottom drawables. 
Drawable[] compundDrawables = textView.getCompoundDrawables(); 
// This is the top drawable. 
Drawable topCompoundDrawable = compoundDrawables[1]; 
Verwandte Themen