2012-04-11 4 views
0

Ich baue eine App für eine Gruppe von drei verschiedenen Gesellschaften. Jede Gesellschaft der Gruppe hat ihre eigene Website, die ein Klon der anderen ist, Ausnahme für Logos und Domains. also in Beispiel habe ich:Erstellen Sie benutzerdefinierte ausklappbare Ressourcen für verschiedene Logos

logoA.jpeg

logoB.jpeg

logoC.jpeg

Für soc. A, B und C.

http: // socA.it /homepage/default.aspx

http: // socB.it /homepage/default.aspx

http: // socc.it /homepage/default.aspx

für Homepage-Links und so weiter. Layouts der Sites sind genau gleich.

Was ich mit meiner App zu tun habe, ist das Abrufen von Daten von den Seiten der Websites. In der Startaktivität meiner App kann der registrierte Benutzer auswählen, auf welcher Seite er sich anmelden und arbeiten möchte. Sobald er eingeloggt ist, kann er die Informationen, die er benötigt, von der Website/Gesellschaft, die er wählt, mit meiner App bekommen.

Ich habe offensichtlich eine einzelne App erstellt, um Daten von allen Seiten abzurufen, aber ich suche nach einer eleganten (und natürlich korrekten) Möglichkeit, mit den verschiedenen Domains/Logos umzugehen. Als Bedenken Domänen ich speichern die, die der Benutzer zum Zeitpunkt der Anmeldung in den Benutzereinstellungen wählen und ich es als base_url (die Domäne) abrufen, wenn ich es brauche.

Die Frage ist: Wie kann ich mit Logos umgehen? Ich habe drei verschiedene Logos, die angezeigt werden können, und ich habe eine Kopie von ihnen für jede Auflösung in Drawable * Ordnern. Was ich denke, ich kann eine if-Anweisung in jedem onCreate-Ereignis jeder Aktivität hinzufügen, die die Benutzereinstellung überprüfen und das richtige Logo zeigen (oder eine Methode getMyLogo() irgendwo anders erstellt), aber es ist langweilig .. Konnte es besser sein, einen benutzerdefinierter ziehbar Ordner für jeden Fall zu erstellen, um alle verschiedenen Szenarien zu behandeln:

ziehbar ziehbar-A-LDPI ziehbar-A-MDPI ziehbar-A-hdpi ziehbar-B.ldpi .. ?

Jeder Vorschlag wird geschätzt.

Antwort

0

Soweit ich weiß, dass dies nicht möglich ist, ist der sauberste Weg, eine Klasse zu haben, die in den Zeilen von SocietyHelper mit statischen Methoden für getLogo() und getUrl() aufgerufen wird. Das einzige, was nicht "sauber" ist, ist, dass Sie das Logo nicht in XML definieren können. Wenn sich Ihr Logo immer in einer Bildansicht befindet, könnten Sie eine ImageView-Unterklasse namens LogoImageView erstellen, die das ImageView nur mit dem richtigen Logo initialisiert.

+0

Hallo Emil, danke für deinen Vorschlag. Ich denke, die benutzerdefinierte ImageView ist eine einfache Möglichkeit, mein Problem zu lösen, und ich mag es. –

Verwandte Themen