Ho poche immagini che sembrano diverse da destra a sinistra. È possibile creare una directory disegnabile specifica rtl o qualche rtl post-fix per i nomi di file per caricare automaticamente le immagini rilevanti? Sembra che ldrtl post-fix, aggiunto da 17 lvl, sia valido solo per la directory di layout.Come specificare i drawable specifici RTL
risposta
E 'piuttosto tardi per rispondere a questa domanda, ma voglio condividere un metodo che ho appena scoperto. Ricapitolerò prima quello che viene menzionato dagli altri.
Cominciamo con una specifica.
abbiamo bisogno di costruire qualcosa di simile:
login --> take picture --> win prize
In RTL, diventerà:
ezirp niw <-- erutcip ekat <-- nigol
Così la grande domanda è come si flip la freccia drawable, Chiamiamo it arrow_right.png
: -->
e in RTL si desidera che sia così: <--
Per Android> = 19
Come altri hanno detto, siamo in grado di utilizzare il flag autoMirrored=true
.(available from API19)
l'utilizzo:
<ImageView ...
src="@drawable/arrow_right"
autoMirrored="true" />
Le attività:
├── drawable-xxxhdpi
└── arrow_right.png
├── drawable-xxhdpi
└── arrow_right.png
├── drawable-xhdpi
└── arrow_right.png
├── drawable-hdpi
└── arrow_right.png
├── drawable-mdpi
└── arrow_right.png
notare che:
arrow_right.png
all'internodrawable-*
contengono-->
Note: L'unico svantaggio è che non è compatibile con le versioni precedenti.
Per Android < 19, Opzione 1
Come altri hanno fatto notare, è possibile utilizzare l'opzione ldrtl
. (doc: Providing Resources)
l'utilizzo:
<ImageView ...
src="@drawable/arrow_right"
autoMirrored="true" />
Le attività:
├── drawable-xxxhdpi
└── arrow_right.png
├── drawable-xxhdpi
└── arrow_right.png
├── drawable-xhdpi
└── arrow_right.png
├── drawable-hdpi
└── arrow_right.png
├── drawable-mdpi
└── arrow_right.png
├── drawable-ldrtl-xxxhdpi
└── arrow_right.png
├── drawable-ldrtl-xxhdpi
└── arrow_right.png
├── drawable-ldrtl-xhdpi
└── arrow_right.png
├── drawable-ldrtl-hdpi
└── arrow_right.png
├── drawable-ldrtl-mdpi
└── arrow_right.png
notare che:
arrow_right.png
all'internodrawable-*
contengono-->
arrow_right.png
all'interno didrawable-ldrtl-*
contiene<--
.
Note: Non c'è niente di sbagliato in questo metodo, tranne che è necessario preparare come file di risorse 10x. Quindi mi porta a scoprire la prossima opzione.
Per Android < 19, l'opzione 2
Questa opzione prevede di utilizzare gli attributi rotationY="180"
. (available from API11)
Se si imposta rotationY="180"
a ImageView
, -->
si trasformerà in <--
.
Quindi possiamo fare qualcosa come il seguente.
L'utilizzo:
<ImageView ...
src="@drawable/arrow_right"
android:rotationY="@integer/angle_rtl_180" />
Le attività:
drawable
├── drawable-xxxhdpi
└── arrow_right.png
├── drawable-xxhdpi
└── arrow_right.png
├── drawable-xhdpi
└── arrow_right.png
├── drawable-hdpi
└── arrow_right.png
├── drawable-mdpi
└── arrow_right.png
├── values
└── integers.xml
├── values-ldrtl
└── integers.xml
Nota:
arrow_right.png
contiene-->
values/integers
contiene 012.372.951,779 milavalues-ldrtl/integers
contiene<integer name="angle_rtl_180">180</integer>
Osservazioni: Hai solo bisogno di 1 set di beni, e questa soluzione può essere utilizzato da API 11, e l'utilizzo è abbastanza semplice con la semplice aggiunta android:rotationY="@integer/angle_rtl_180"
.
Spero che aiuti!
C'è un'opzione per il mirror automatico del drawable. Controlla l'attributo autoMirrored.
Per 17+ (4.2.x +) è possibile utilizzare la direzione di layout (ld) risorse di qualificazione, per la destra a sinistra (RTL) è possibile utilizzare ldrtl e da sinistra a destra (LTR) è possibile utilizzare ldltr, ad es è possibile utilizzare
res/ drawable // Default drawable-ldltr // LTR drawable-ldrtl // RTL
anche come qualsiasi altro qualificatore si può combinare con molti altri per esempio drawable-ldrtl-xhdpi
, si noti come ldrtl viene prima di xhdpi altrimenti aapt si lamenterà.
E come @Dennis citate da 19+ (4.4+) diventa più facile come si può utilizzare autoMirrored
Che ne dici di drawable-fa? Sta funzionando. –
Cosa è drawable-fa, @ Mr.Hyde? Non ho trovato nulla nei documenti. – lidkxx
@lidkxx Niente. È stato un mio errore. 'fa' è per la lingua persiana ed è un linguaggio RTL. In quel momento intendevo come dovrei aggiungere questi 'ldltr' e' ldrtl' a una cartella che ha questo nome 'drawable-fa'. Ma ora ce l'ho; Basta creare 'drawable-ldrtl' per i layout sulla lingua persiana. –
- 1. Specificare campi specifici con Sequelize (NodeJS) anziché *
- 2. Come utilizzare i drawable predefiniti di Android
- 3. Risorse $ NotFoundException drawable-xhdpi dalla risorsa drawable
- 4. Modifica EditText setError drawable gravity
- 5. HighCharts per supportare RTL
- 6. Internazionalizzazione JSP RTL/LTR
- 7. Ricompilazione di RTL - se possibile, quindi come?
- 8. Come impostare state_selected in ondulazione drawable
- 9. Android studio 1.0 non visualizza drawable-hdpi, drawable-xhdpi, drawable-mdpi, drawable-xxhdpi
- 10. Come impostare un vuoto drawable
- 11. Ottenere drawable specifico dalla lista stato drawable
- 12. Come posso accedere a tutti i drawable in Android?
- 13. Come utilizzare la libreria di diagrammi con i drawable GTK?
- 14. vim: come specificare i tasti freccia
- 15. Come specificare i nomi dei processi AddIn?
- 16. Come specificare i profili attivi in Maven3
- 17. Come specificare i ritorni consecutivi in gmock?
- 18. Differenza tra drawable e drawable-mdpi
- 19. Drawable-hdpi, Drawable-mdpi, Drawdable-ldpi Android
- 20. Twitter Bootstrap rtl valutazione stelle
- 21. Android: Come impostare drawable visibile
- 22. FlexSlider con la direzione RTL
- 23. Cursore Android in lingue RTL
- 24. Come specificare un convertitore di tipi specifici per una determinata proprietà utilizzando AutoMapper
- 25. Specificare i parametri con SQLMAP
- 26. personalizzata SeekBar Drawable Android
- 27. Come escludere tipi specifici dalla serializzazione?
- 28. JPA: aggiornare solo i campi specifici
- 29. Componenti GUI Swing JAVA howto vista RTL?
- 30. Android Vector Drawable crash
Ho bisogno di supporto a nido d'ape, il mirror automatico è supportato solo a partire da 19 lvl. –