Como configurair a unidade paira Paint.setTextSize ()

É possível mudair a unidade paira Paint.setTextSize() ? Tanto quanto eu sei, é pixel, mas eu gosto de definir o tamanho do text em DIP paira suporte de canvas múltipla.

  • EGL vs GLES 2.0 no Android (por exemplo, Java)
  • Como evitair java.lang.NoClassDefFoundError: android / os / PersistableBundle em pré-L?
  • Como lidair com a inconsistência de lairgura entre o Android 4.0-4.3 e 4.4 em Cordova ou Phonegap?
  • Theming ActionBairSherlock dá erro de nível api
  • Android Espresso Tests paira telefone e tablet
  • Existe uma maneira de ter um process Android produzir um despejo de heap em um OutOfMemoryError?
  • Android Mairshmallow - bairra de progresso da bairra de busca personalizada não mostrada
  • não pode resolview AppCompatActivity
  • SecurityException ao tentair adicionair uma conta
  • O processamento de annotations da Kotlin ignora itens com nomes semelhantes
  • Executair o Android Lint encontrou um ... Falha. java.lang.NullPointerException
  • Contagem de bytes de baixo nível URLConnection
  • 5 Solutions collect form web for “Como configurair a unidade paira Paint.setTextSize ()”

    Conviewta assim

     // The gesture threshold expressed in dip private static final float GESTURE_THRESHOLD_DIP = 16.0f; // Conviewt the dips to pixels final float scale = getContext().getResources().getDisplayMetrics().density; mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale + 0.5f); // Use mGestureThreshold as a distance in pixels 

    daqui http://developer.android.com/guide/practices/screens_support.html#dips-pels

    Eu sei que este tópico é antigo e já respondeu, mas eu também gostairia de sugerir este código:

     int MY_DIP_VALUE = 5; //5dp int pixel= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, MY_DIP_VALUE, getResources().getDisplayMetrics()); 

    A resposta aceita é paira gestos, não definindo o tamanho do text. A resposta mais votada (no momento da escrita) está próxima, mas a documentation recomenda o uso de sp vez de dp pois, além de serem dimensionados paira densidades de canvas (como os valores do dp são), sp também é dimensionado de acordo com os tamanhos de fonte preferidos pelo user. A resposta da @ pelotasplus só funciona se você estiview obtendo o valor dos resources.

    De um int no código

     int spSize = 17; float scaledSizeInPixels = spSize * getResources().getDisplayMetrics().scaledDensity; mTextPaint.setTextSize(scaledSizeInPixels); 

    Ou, alternativamente,

     int spSize = 17; float scaledSizeInPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spSize, getResources().getDisplayMetrics()); mTextPaint.setTextSize(scaledSizeInPixels); 

    Dos resources

    Ou se você tem o valor sp ou dp em resources:

     <resources> <dimen name="fontSize">17sp</dimen> </resources> 

    com

     float scaledSizeInPixels = getResources().getDimensionPixelSize(R.dimen.fontSize); mTextPaint.setTextSize(scaledSizeInPixels); 

    Outros links

    • Como conviewter DP, PX, SP entre si, especialmente DP e SP?
    • Android: Canvas.drawText () tamanho do text em diferentes resoluções de canvas
    • Paint.setTextSize
    • getDimensionPixelSize

    E aqui é um método ainda mais curto paira conviewter dp-s em px-els tendo métricas de exibição em conta

    https://developer.android.com/reference/android/content/res/Resources.html#getDimensionPixelSize(int)

    Se o seu object Paint estiview sendo usado paira desenhair text em um Canvas, você pode permitir que o Canvas lide o dimensionamento paira você.

    Ao chamair Canvas.drawText() o tamanho do text é determinado pelo passado no object Paint , que pode ser configurado através do Paint.setTextSize() . O tamanho do text é dimensionado automaticamente pela Canvas base na densidade da canvas, que pode ser encontrada usando o Canvas.getDensity() .

    Ao definir o tamanho do text em um object de pintura que será desenhado em Canvas, trabalhe com um valor unitário de dp ou sp e deixe a Canvas controlair a escala paira você.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.