2016-03-12 23 views
5

allowFontScaling={false} kullanarak bunu iOS'ta düzeltir, ancak Android'de nasıl ayarlayacağımı bilmiyorum.Android için RN'de yazı tipi ölçeklendirme nasıl devre dışı bırakılır?

Ayrıca, RN'ye aşina olmayan ve Android etiketinden buraya gelen herkes için, kolayca dp yazı tipi ölçeklendirmeye veya herhangi bir şeye dönüşebileceğimi düşünmüyorum, bu yüzden global olarak yapabileceğim bir yol var mı? benim uygulama bir şekilde?

Teşekkürler!

+0

Ekran yoğunluğuna göre font değerini ayarlamayı düşündünüz mü? Android'de metin boyutu, fontun daha yüksek piksel yoğunluğuna sahip ekranlarda aynı fiziksel boyutta görünecek şekilde ölçeklenmesi gerektiğini belirten "sp" ile ayarlanır. Söz konusu metin boyutu için bir "dimen" özniteliği tanımladıysanız, her bir ekran yoğunluğu için farklı "dimens.xml" dosyaları oluşturduysanız (mdpi, hdpi, xhdpi, xxhdpi ve xxxhdpi) ve her biri için yazı tipi boyutunun ne olması gerektiğini belirleyin. ekran yoğunluğu, sizin için ne aradığınızı bu gibi geliyor –

+0

@JaceJMcPherson Anladığımdan emin değilim. RN öğesinde bir metin öğesinde 'sp' yazan bir metin boyutu ayarlayabilir misiniz? –

+0

Aynı sorunla karşı karşıyayım. Çözüme sahip olup olmadığını bana söyleyin. – Prasanna

cevap

4

ManiApplication.java super.onCreate(); yöntem adjustFontScale(getApplicationContext(),getResources().getConfiguration());

gibi

@Override 
    public void onCreate() { 
    super.onCreate(); 
    adjustFontScale(getApplicationContext(),getResources().getConfiguration()); 
} 

izleyin koymak

import android.view.WindowManager; 
import android.content.res.Configuration; 
import android.content.Context; 
import android.util.DisplayMetrics; 

sonra dosya Ve sonunda güncelleyin lütfen aşağıdaki fonksiyonu ekleyin

public void adjustFontScale(Context context, Configuration configuration) { 
    if (configuration.fontScale != 1) { 
     configuration.fontScale = 1; 
     DisplayMetrics metrics = context.getResources().getDisplayMetrics(); 
     WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
     wm.getDefaultDisplay().getMetrics(metrics); 
     metrics.scaledDensity = configuration.fontScale * metrics.density; 
     context.getResources().updateConfiguration(configuration, metrics); 
    } 
} 
+0

OP'de böyle bir durumun olması durumunda SO üzerinde bir kuvvet kabul etme özelliğine ihtiyacımız var. –

İlgili konular