texto tamaño studio plain negrita letra fondo edittext color cambiar ancho alinear android string android-textview text-size

plain - tamaño de letra en android studio



Diferentes tamaños de letra de cadenas en el mismo TextView (6)

En caso de que se pregunte cómo puede configurar múltiples tamaños diferentes en la misma vista de texto, pero usando un tamaño absoluto y no uno relativo, puede lograrlo usando AbsoluteSizeSpan lugar de RelativeSizeSpan .

Simplemente obtenga la dimensión en píxeles del tamaño de texto deseado

int textSize1 = getResources().getDimensionPixelSize(R.dimen.text_size_1); int textSize2 = getResources().getDimensionPixelSize(R.dimen.text_size_2);

y luego crea un nuevo AbsoluteSpan basado en el texto

String text1 = "Hi"; String text2 = "there"; SpannableString span1 = new SpannableString(text1); span1.setSpan(new AbsoluteSizeSpan(textSize1), 0, text1.length(), SPAN_INCLUSIVE_INCLUSIVE); SpannableString span2 = new SpannableString(text2); span2.setSpan(new AbsoluteSizeSpan(textSize2), 0, text2.length(), SPAN_INCLUSIVE_INCLUSIVE); // let''s put both spans together with a separator and all CharSequence finalText = TextUtils.concat(span1, " ", span2);

Tengo una vista de texto dentro con un número (variable) y una string , ¿cómo puedo dar el número uno más grande que la cadena? el código:

TextView size = (TextView)convertView.findViewById(R.id.privarea_list_size); if (ls.numProducts != null) { size.setText(ls.numProducts + " " + mContext.getString(R.string.products)); }

Quiero que ls.numproducts tenga un tamaño diferente del resto del texto. ¿Cómo hacer?


He escrito mi propia función que toma 2 cadenas y 1 int (tamaño del texto)

El texto completo y la parte del texto que desea cambiar el tamaño de la misma.

Devuelve un SpannableStringBuilder que puede usar en la vista de texto.

public static SpannableStringBuilder setSectionOfTextSize(String text, String textToChangeSize, int size){ SpannableStringBuilder builder=new SpannableStringBuilder(); if(textToChangeSize.length() > 0 && !textToChangeSize.trim().equals("")){ //for counting start/end indexes String testText = text.toLowerCase(Locale.US); String testTextToBold = textToChangeSize.toLowerCase(Locale.US); int startingIndex = testText.indexOf(testTextToBold); int endingIndex = startingIndex + testTextToBold.length(); //for counting start/end indexes if(startingIndex < 0 || endingIndex <0){ return builder.append(text); } else if(startingIndex >= 0 && endingIndex >=0){ builder.append(text); builder.setSpan(new AbsoluteSizeSpan(size, true), startingIndex, endingIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } }else{ return builder.append(text); } return builder; }



Puede hacerlo usando una cadena html y configurando el html en Textview usando
txtView.setText(Html.fromHtml("Your html string here"));

Por ejemplo :

txtView.setText(Html.fromHtml("<html><body><font size=5 color=red>Hello </font> World </body><html>"));`


Use una cadena de Spannable

String s= "Hello Everyone"; SpannableString ss1= new SpannableString(s); ss1.setSpan(new RelativeSizeSpan(2f), 0,5, 0); // set size ss1.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);// set color TextView tv= (TextView) findViewById(R.id.textview); tv.setText(ss1);

Disparo rápido

Puede dividir cadena usando espacio y agregar span a la cadena que necesita.

String s= "Hello Everyone"; String[] each = s.split(" ");

Ahora aplique span a la cadena y agréguela a textview.


Método 1

public static void increaseFontSizeForPath(Spannable spannable, String path, float increaseTime) { int startIndexOfPath = spannable.toString().indexOf(path); spannable.setSpan(new RelativeSizeSpan(increaseTime), startIndexOfPath, startIndexOfPath + path.length(), 0); }

utilizando

Utils.increaseFontSizeForPath(spannable, "big", 3); // make "big" text bigger 3 time than normal text

Método 2

public static void setFontSizeForPath(Spannable spannable, String path, int fontSizeInPixel) { int startIndexOfPath = spannable.toString().indexOf(path); spannable.setSpan(new AbsoluteSizeSpan(fontSizeInPixel), startIndexOfPath, startIndexOfPath + path.length(), 0); }

utilizando

Utils.setFontSizeForPath(spannable, "big", (int) textView.getTextSize() + 20); // make "big" text bigger 20px than normal text