Moin, also ich werde gerade geringfügig irre.
Die Dokumentationen zu BitmapDrawable und RotateDrawable hab ich jetzt 10x rauf und runter gelesen und ich komme auf keinen grünen Zweig.
Auch die Links von Titus im MapView Thema habe ich mir mehrfach durchgelesen:der Ansatz ist verstanden, an der Durchführung hapert es.
Folgende Situation:
Ich habe eine Listview, in der ein paar Elemente sind. Aktuell sind es 33, es können aber auch gern mal das Hundertfache werden.
Das Layout ist relativ simpel: rechts oben ein Textview, rechts unten ein Textview und Links eine eigene ViewGroup.
Besagte ViewGroup beinhaltet aktuell auf Grund von einfacherer Darstellbarkeit nur ein TextView mit einem Drawable on top.
Dieses Drawable ist ein simpler nach oben zeigender Pfeil aus einem PNG.
Cell.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView android:id="@+id/locationName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="20dp"
android:layout_marginLeft="64dp"
android:text="POI"
android:layout_alignParentTop="true"
android:background="#666666"/>
<TextView android:id="@+id/locationString"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="N 53° 9'' 27' E 9° 18'' 59'"
android:layout_marginLeft="64dp"
android:layout_below="@id/locationName"
android:background="#333333"/>
<com.example.Pfeile.DirectionView android:id="@+id/arrowView"
android:layout_height="96dp"
android:layout_width="64dp" />
</RelativeLayout>
Alles anzeigen
direction_view.xml:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:id="@+id/internalDistanceTextView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:text="675m"
android:drawableTop="@drawable/up_arrow"
/>
</merge>
Alles anzeigen
Wie zu erwarten wird beim Starten der App also eine Zelle angezeigt mit einem Point Of Interest, darunter dann die Koordinaten und links daneben ein nach oben zeigender Pfeil mit einer darunter liegenden Entfernungsangabe.
Und egal was ich versuche, ich bekomme diesen dämlichen Pfeil nicht gedreht.
Der Zugriff erfolgt ziemlich simpel:
Jetzt habe ich eine BitmapDrawable, mit der ich gefühlt gar nix tun kann. Ich kann sie so nicht rotieren, ich kann sie nicht in eine RotateDrawable casten, ich kann (da sie in dem TextView steckt) nicht im XML als <rotate /> definieren und natürlich habe ich keine Ahnung, wie sich diese verdammte Graphik um ihre eigene Achse drehen lässt.
Kann das denn echt so schwer sein?
Aus Performancegründen (wie bereits erwähnt: ca. 5000 Einträge sollten nachher möglich sein) möchte ich ungern für jede Rotation erst mal 17 Objekte hin und her erstellen. Wenn mir jemand einen hilfreichen Link zu einem Tutorial zeigen kann, der RotateDrawable im Code auf eine BitmapDrawable anwendet, wäre ich ihm dankbar.
(Alle Resourcen scheinen sich um Animationen von gesamten Views zu drehen, niemals um simples Verarbeiten von Drawables. Nervig.)