1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. iggi13, 22.07.2010 #1
    iggi13

    iggi13 Threadstarter Neuer Benutzer

    Hallo,

    ich würde gerne in mitten einer Activtiy einen drehende Pfeil zeichnen wollen.
    Dabei sollen die restlichen GUI-Element "ganz" normal platziert werden.
    Der Pfeil gibt die Richtung der GPS-Koordinaten an. Der Rest des Programms steht soweit außer die GUI.

    Hat jemand eine Idee? Ich habe so etwas ähnliches schon einmal mit einer View und einem Canvas gemacht, aber wie gesagt möchte ich auf dieser Ansicht auch noch weitere "normale" GUI-Elemente, wie Textfelder, einbauen.

    vg iggi
     
  2. MichaelS, 22.07.2010 #2
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    was spricht dan gegen canvas? einfach ne klasse schreiben, der du die methode zum rendern überschreibst und fertig ;) die klasse erbt natürlich von View und kan so überall eingesetzt werden =) kein hexenwerk ;)
     
  3. iggi13, 22.07.2010 #3
    iggi13

    iggi13 Threadstarter Neuer Benutzer

    Ich wollte mich aber nicht um die Positionierung von den weiteren Textfeldern kümmern, sondern das von dem LayoutManager der Activity übernehmen lassen. Sonst fange ich ja an, die GPS-Position auch zu zeichnen, oder?

    Gibt es da nicht einen Weg ein Bild einzufügen und das zu drehen? Aber dann sind wir schon wieder an dem OpenGL dran, denke ich mal.
     
  4. MichaelS, 22.07.2010 #4
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    arg du machst mich schwach ;D habs doch erklärt wie es geht... Du machst ne Klasse, die von View erbt und überschreibst das Rendern dieser einen View... Diese Klasse fügst du dan deiner Activity hinzu in nen Layout deiner Wahl...
     
  5. DieGoldeneMitte, 22.07.2010 #5
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Ich weiss auch nicht, wass an Canvas.rotate() so kompliziert sein soll. :D
     
  6. ko5tik, 22.07.2010 #6
    ko5tik

    ko5tik Android-Experte


    Definiere mal eine Animation auf deinen Object, und es wird sich drehen (und nicht nur) bis dir schwindlich ist.

    Das zwingt meine Kugeln für immer zu hüpfen:
    Code:
    
        <translate  xmlns:android="http://schemas.android.com/apk/res/android" android:repeatCount="infinite" android:repeatMode="reverse"
                android:fromXDelta="0"
                android:fromYDelta="0"
                android:toXDelta="0"
                android:toYDelta="-3"
                android:duration="150"
                android:interpolator="@android:anim/accelerate_decelerate_interpolator"/> 
    
    
    Und im Code (in einen View):
    Code:
          wobble = AnimationUtils.loadAnimation(context, R.anim.jump);
          startAnimation(wobble);
    
     
  7. iggi13, 23.07.2010 #7
    iggi13

    iggi13 Threadstarter Neuer Benutzer

    Danke für die Antworten.
    Habe bis jetzt weniger mit GUI und Android gemacht. Also nur Java ;)
    Naja bissel in einer TextView angezeigt und so...

    Habe mir jetzt ne View erstellt
    Doch wie bekomme ich das nun in das Layout gepackt?
    Wenn ich es im Quellcode mit setContentView mache, dann wird der Pfeil angezeigt. Aber würde es wie gesagt, gerne in die Mitte der ersten Actitvity platzieren.

     
  8. DieGoldeneMitte, 23.07.2010 #8
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Wenn Du selber einen View bauen willst, kannst Du den mit seinem vollen Klassennamen (also mit Paketnamen) im XML spezifizieren. (Ggf auch noch onMeasure und onLayout überladen)

    Code:
    <com.meine.widgets.DirectionView
       ... attribute ...
    />
    
    Achja, und anstatt "new Float(0.0)" schreibt man in Java "0.0f"
     
  9. iggi13, 23.07.2010 #9
    iggi13

    iggi13 Threadstarter Neuer Benutzer

    Danke für den Typ mit float.

    Habe nun
    Wird auch angezeigt wunderbar. Aber irgendwie wird es nicht in der "GoldenenMitte" angezeigt ;)
     
  10. iggi13, 09.08.2010 #10
    iggi13

    iggi13 Threadstarter Neuer Benutzer

    Hallo,

    kann mir keiner sagen, warum der Pfeil, denen ich einer DirectionView zeichne oben links ist statt in der Mitte des Bildschirms?

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/relLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center">
    <TextView
    android:id="@+id/TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#ff009900"
    >
    
    </TextView>
    
    <ProgressBar
            android:id="@+id/ProgressBar01"
            android:layout_centerInParent="true"
            android:layout_width="wrap_content"
            android:layout_gravity="center"
            android:layout_height="wrap_content"></ProgressBar>
    <de.fhhannover.DirectionView
    android:id="@+id/DirectionView"
    android:layout_centerInParent="true"
            android:layout_width="wrap_content"
            android:layout_gravity="center"
            android:layout_height="wrap_content"
    ></de.fhhannover.DirectionView>
    
    </RelativeLayout>
    Code:
    protected void onDraw(Canvas canvas) {
    		
    	
    		Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
    				R.drawable.pfeil);
    		Paint paint = new Paint();
    
    
    
    		canvas.save();
    
    		canvas.rotate((float) mDrehung, bitmap.getWidth() / 2, bitmap
    				.getHeight() / 2);
    		
    		canvas.drawBitmap(bitmap, 0.f, 0.f, paint);
    	
    		canvas.restore();
    
    
    	}
    Komischerweise wird die Progressbar schön in der Mitte angezeigt, doch nicht der Pfeil der in der DirectionView gezeichnet wird. Muss ich dem Canvas noch mitteilen, ab wo er zeichnen soll?
     
    Zuletzt bearbeitet: 09.08.2010
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Bitmap von Activity an Activity übergben Android App Entwicklung 03.09.2017
[OFFEN] Activity als Dialog - RecyclerView funktioniert nicht mehr Android App Entwicklung 14.08.2017
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
[GELÖST] Übergabe an zweite Activity Android App Entwicklung 11.05.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Intent mit Daten (putExtra) zu anderer Activity Android App Entwicklung 14.02.2017
Wie zeichne ich eine Linie mit Canvas ? Android App Entwicklung 28.01.2017
Viewelemente neu zeichnen Android App Entwicklung 04.01.2017
Bestätigungsdialog in der Activity Android App Entwicklung 19.12.2016

Users found this page by searching for:

  1. android drehender pfeil

Du betrachtest das Thema "In Activity einen drehenden Pfeil zeichnen" im Forum "Android App Entwicklung",