La dimensione del carattere di TextView nell'applicazione Android cambia la modifica della dimensione del carattere dalle impostazioni nativi

Vorrei specificare la mia dimensione del text nella mia applicazione, ma sto facendo un problema a farlo.

Quando cambio la dimensione del carattere nelle impostazioni del dispositivo, anche le size del text della mia applicazione TextView cambiano.

  • Libreria Android Media Player
  • Come creare EditText con il button cross (x) alla fine di esso?
  • Risultato dall'elaborazione del segnale audio con l'algorithm di Goertzel
  • mapview android non funziona
  • Come modificare la width e l'altezza di Google Maps v2 (frammento di supporto) a livello di programmazione?
  • Un modo semplice per build l'applicazione di sistema Android? (Eclipse ad esempio)
  • Estensione della class per attività
  • Cosa succede esattamente quando installo un'applicazione android?
  • Android, Blur Bitmap istantaneamente?
  • come impostare i dati analizzati da json in una listview e quindi aggiungere funzionalità di ricerca in esso
  • Come fermare o distruggere una discussione in esecuzione
  • Registrazione vocale Applicazione in android
  • 6 Solutions collect form web for “La dimensione del carattere di TextView nell'applicazione Android cambia la modifica della dimensione del carattere dalle impostazioni nativi”

    In realtà, le size delle size delle impostazioni influenzano solo le size in sp . Quindi tutto ciò che devi fare – definisci textSize in dp invece di sp , quindi le impostazioni non modificano le size del text nella tua app.

    Ecco un collegamento alla documentazione: Dimensioni

    Tuttavia, si prega di notare che il comportmento previsto è che i font in tutte le applicazioni rispettano le preferenze dell'utente. Ci sono molte ragioni per cui un utente potrebbe desiderare di regolare le size dei caratteri e alcune di esse potrebbero essere persino medico-visivamente compromesse. L'utilizzo di dp anziché di sp per il text potrebbe portre a discriminare in modo non voluto alcuni utenti di un'applicazione.

    Il modo più semplice per farlo è semplicemente utilizzare qualcosa come il seguente:

     android:textSize="32sp" 

    Se desideri saperne di più sulla properties; textSize , puoi controllare la documentazione dello sviluppatore Android .

    Utilizza il tipo di dimension delle risorse come utilizzare le risorse di string ( DOCS ).

    Nel tuo file dimens.xml , dichiarare le variables di dimensione:

     <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="textview_height">25dp</dimen> <dimen name="textview_width">150dp</dimen> <dimen name="ball_radius">30dp</dimen> <dimen name="font_size">16sp</dimen> </resources> 

    Quindi puoi utilizzare questi valori come questo:

     <TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/> 

    È ansible dichiarare diversi file dimens.xml per diversi tipi di schermate. In questo modo, l'aspetto desiderato dell'applicazione sarà garantito su dispositivi diversi.

    Quando non specificate android:textSize il sistema utilizza i valori predefiniti.

    Inoltre, se il textSize è impostato nel codice, chiamando textView.setTextSize(X) interpreta il numero (X) come SP. Utilizza setTextSize(TypedValue.COMPLEX_UNIT_DIP, X) per impostare i valori in dp .

    Non è una buona cosa che sia necessario specificare nuovamente DIP o SP per codice se già definiti in un file dimen.xml.

    Penso che l'opzione migliore sia quella di utilizzare PX quando si utilizza un valore dimen.xml:

     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen.txt_size)); 

    In questo modo è ansible passare da DP a SP se necessario nel file dimen.xml senza wherer modificare alcun codice.

    Utilizzando font size in DPs instead of SPs in textSize questo risolve. Immagino che l'applicazione facebook android utilizza anche lo stesso approccio. Qualsiasi altro pensiero?

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.