| |||||||
Das Thema "Tutorial Rotating Dialer" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
| ich bin schon länger in der Android Welt unterwegs und helfe auch ab und zu hier im Forum. Nun habe ich ein Tutorial für Mobile Tuts geschrieben. Darin zeige ich, wie man recht leicht mit Hilfe des SDKs eine rotierende Animation erzeugen kann (siehe meine Shutdown App in der Signatur). Ich hoffe das Tutorial interessiert den ein oder anderen. Über Anregungen und ein Feedback würde ich mich freuen Android SDK: Creating a Rotating Dialer
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| Folgender Benutzer bedankt sich bei v Ralle v für diesen Beitrag: | DieGoldeneMitte (20.12.2011) |
| | #2 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
Super, aber was hast du gegen java.lang.Math.atan2 ?
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() |
| | |
| | #3 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Im Prinzip nichts ^^ Wie hätte sich die Berechnung vom Winkel verkürzt?
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #4 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
Erstmal wird daraus das folgende: (Bin deinen Code jetzt nicht soweit durchgegangen, ob man den angle<0 braucht) Code: private double getAngle(double xTouch, double yTouch) {
double x = xTouch - (dialerWidth / 2d);
double y = dialerHeight - yTouch - (dialerHeight / 2d);
double angle = Math.atan2(y,x) * 180 / Math.PI;
if( angle<0 ) angle += 2 * Math.PI;
return angle;
} ausrechnet und dann guckt, ob der Winkelunterschied >180 (modulo 360) ist. Aber dazu muss ich das Tutorial erstmal richtig ausprobieren. (habe mal was ähnliches nur ohne Fling gemacht) ADD: in deinem Download ist ein Tutorial.apk zu viel drinne.
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() Geändert von DieGoldeneMitte (20.12.2011 um 16:25 Uhr) |
| | |
| Folgender Benutzer bedankt sich bei DieGoldeneMitte für diesen Beitrag: | v Ralle v (20.12.2011) |
| | #5 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Oh das sieht schlanker aus. Muss ich demnächst mal so auprobieren. Ich glaube, die haben das Paket selber nochmal zusammengepackt, daher eine .apk zu viel. Sollte aber nicht stören ^^
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #6 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
Noch ein paar Anmerkungen:
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() |
| | |
| | #7 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Du scheinst dich mit dem Tutorial zu beschäftigen, das gefällt mir ^^ Zu der Grafik: das habe ich im Tutorial begründet Damit werden alle Bildschirmgrößen (auch Tablets) abgedeckt und man hat die Grafik nur einmal. Das hilft der Größe der .apk. Es ist wie gesagt nur eine Demo. Hast aber Recht, bei sehr kleinen Geräten kann das zu groß sein und sie können sich ja keine ldpi Datei holen.static sind nur die Grafiken und die Matrix, keine andere Variable. Bei denen macht es natürlich auch Sinn (siehe Kommentare im Code). Welche Variablen meinst du denn? Der Dialer eiert in der Mitte des Tutorials, aber nicht am Ende, wird eigentlich auch beschrieben. Punkt 3 ist Designsache. Bei einen orientationChange wird auch eine neue Activity erzeugt, daher sind die Membervariablen wieder 0. Ich denke, daher geht die Abfrage auch in Ordnung. Hast aber mit dem Manifest recht. Nur wollte ich es so lassen, weil ich am Anfang auch sage, dass man verschiedene andere Views einbinden kann. Was passiert, wenn sich die Landscape Varianter unterscheidet? Daher habe ich es gleich komplett gemacht. Dennoch danke für die Anmerkungen
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #8 (permalink) | ||
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
| Zitat:
Es liegt an dem static vor Matrix. Die aktiven ge post'eten Threads der alten Activity pfuschen in der Matrix der neuen Activity herum. Passiert natürlich nur, wenn man rotiert, während der Fling läuft. (Mach mal ein Log.d("tutorial",this.toString()); im rotateDialer, dann sieht man es). Zitat:
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() Geändert von DieGoldeneMitte (20.12.2011 um 19:03 Uhr) | ||
| | |
| Folgender Benutzer bedankt sich bei DieGoldeneMitte für diesen Beitrag: | v Ralle v (20.12.2011) |
| | #9 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Ja, du hast recht mit dem Eiern. So sehr hatte ich es dann doch nicht getestet ^^ Aber wie du bereits angemerkt hast: die Matrix als Membervariable deklarieren. Man könnte aber auch (ohne es getestet zu haben), die onDestroy Methode überschreiben und die allowRotating Variable auf false setzen. Sollte ressourcenschonender sein. Dennoch danke für den Bug, den muss ich in meiner App ausbessern Wenn du magst, kannst du deine Methode aus der Nachricht auch noch hier posten. Die sieht nämlich wesentlich besser aus als meine
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #10 (permalink) | ||
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
| Zitat:
![]() Zitat:
Code: private final static float FLING_SPEED = 0.4;
private class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
double x1 = e1.getX() - (dialerWidth / 2);
double y1 = dialerHeight - e1.getY() - (dialerHeight / 2);
double x2 = e2.getX() - (dialerWidth / 2);
double y2 = dialerHeight - e2.getY() - (dialerHeight / 2);
float speed = (float)(Math.sqrt( velocityX * velocityX + velocityY * velocityY ) * FLING_SPEED);
float dir = (float)Math.signum( y1 * x2 - x1 * y2 );
// Berechnung der Orientierung der Drehung anhand der Determinate von
// Anfang und Ende des Flings.
dialer.post( new FlingRunnable( dir * speed ));
return true;
}
}
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() | ||
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Sense Dialer? | maXTC | Kommunikation | 2 | 06.10.2011 10:18 |
| Eigener Dialer | Peter123 | Android App Entwicklung | 3 | 15.08.2011 18:06 |
| Dialer Problem | Kinghariii | Root / Hacking / Modding für Samsung Galaxy S | 17 | 21.04.2011 22:49 |
| [Dialer-Theme] Noble Glass Dialer (Black & White) | regedy1 | Themes für Samsung Galaxy S | 108 | 09.04.2011 15:07 |