texto tamaño studio simple personalizado letra item ejemplo editar color change cambiar atributos android webview text-size text-justify

tamaño - listview personalizado android studio ejemplo



Cómo establecer el tamaño del texto en WebView en Android (7)

1 - Estoy usando este código que me da un buen resultado en todos mis dispositivos.

Si la web es poco WebView,

web = (WebView) v.findViewById(R.id.htmlDisplay); // Impostazioni della WebView. final WebSettings webSettings = web.getSettings(); // Set the font size (in sp). webSettings.setDefaultFontSize(20);

OK, esto está codificado

Ahora, una solución más dinámica (según su pregunta):

Si coloca el tamaño deseado en un archivo de enteros (varios, uno para cada pantalla que admite), puede hacerlo para recuperar su valor:

Resources res = getResources(); float fontSize = res.getInteger(R.integer.font_size); webSettings.setDefaultFontSize(fontSize);

Suponiendo que tus archivos res / values ​​/ integers.xml son similares a este:

<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="font_size">20</integer> </resources>

Así que cambie esta línea en el código anterior

webSettings.setDefaultFontSize(20);

a

webSettings.setDefaultFontSize(fontSize);

2 - Para cargar cosas más rápido, uso el siguiente código

// Optimize loading times. webSettings.setAppCacheEnabled(false); webSettings.setBlockNetworkImage(true); webSettings.setLoadsImagesAutomatically(true); webSettings.setGeolocationEnabled(false); webSettings.setNeedInitialFocus(false); webSettings.setSaveFormData(false);

Tenga en cuenta que cargo más de 7-8 líneas de texto: es una página HTML completa con JavaScript para expandir / contraer secciones. Y lleva, digamos, medio segundo cargar. Entonces, supongo que se cargarán de 7 a 8 líneas de texto en un instante.

Estoy usando WebView para justificar el texto. Quiero saber-

  1. ¿Es posible establecer el tamaño del texto en el archivo de layout ? Como quiero un tamaño de texto diferente para diferentes tamaños de pantalla.

  2. Y también un problema es que primero aparece el fondo luego de 2 segundos de visualización de texto. ¿Es posible mostrar texto de inmediato?

El tamaño del texto es 7-8 líneas .

Código-

public class Main extends Activity { WebView mWebView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); String text = "<html><body>"+"<p align=/"justify/">"+getString(R.string.itext)+"</p>"+"</body></html>"; mWebView .loadData(text, "text/html", "utf-8"); mWebView .setBackgroundColor(Color.TRANSPARENT); } }

Xml-

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/light"> <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@android:color/transparent"/> </LinearLayout>


Hay tres formas de establecer FontSize en WebView .

1) WebView.setDefaultFontSize (int)

webview.setDefaultFontSize(50);

2) WebView.getSettings (). SetTextSize (WebSettings.TextSize.SMALLEST)

WebView.getSettings().setTextSize(TextSize.SMALLEST);

o

WebView.getSettings().setTextSize(TextSize.SMALLER);

o

WebView.getSettings().setTextSize(TextSize.NORMAL);

o

WebView.getSettings().setTextSize(TextSize.BIGGER);

o

WebView.getSettings().setTextSize(TextSize.BIGGEST);

3) Agregue tamaño de fuente en formato html.

String text = "<html><body style=/"color:black;font-family:Helvetica;font-size:12px;/"''background-color:transparent'' >"+"<p align=/"justify/">"+getString(R.string.itext)+"</p>"+"</body></html>";


No estoy seguro de si esto es lo que está buscando, pero siempre que no desee establecer el tamaño del texto en base a un cálculo con el ancho / alto del texto, esto debería ser lo que está buscando:

WebSettings settings = yourWebView.getSettings();

De esta forma obtendrá la configuración de WebView cuyo tamaño de texto está tratando de cambiar.

Hay algunos valores predefinidos que puede establecer como tamaño utilizando la clase TextSize , por ejemplo:

settings.setTextSize(TextSize.SMALLEST); settings.setTextSize(TextSize.SMALLER); settings.setTextSize(TextSize.NORMAL); settings.setTextSize(TextSize.BIGGER); settings.setTextSize(TextSize.BIGGEST);

Simplemente puede elegir cuál necesita configurar dependiendo de los parámetros del dispositivo actual que elija.

Si, por el contrario, quiere hacer algún tipo de cálculo del ancho / alto de la pantalla y establecer el resultado como un valor particular, incluso puede usar esto:

settings.setDefaultFontSize(an_integer_that_goes_between_1_and_72);

---- EDIT ----

Para realzar su renderizado WebView , intente lo siguiente:

mWebView.getSettings().setRenderPriority(RenderPriority.HIGH); mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

También puede intentar agregar esto a su archivo Manifest :

android:hardwareAccelerated="true"


Para configurar el tamaño del texto desde el diseño-

final WebSettings webSettings = web.getSettings(); Resources res = getResources(); fontSize = res.getDimension(R.dimen.txtSize); webSettings.setDefaultFontSize((int)fontSize);

Para visualización de texto inmediata-

webSettings.setRenderPriority(RenderPriority.HIGH); webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); webSettings.setAppCacheEnabled(false); webSettings.setBlockNetworkImage(true); webSettings.setLoadsImagesAutomatically(true); webSettings.setGeolocationEnabled(false); webSettings.setNeedInitialFocus(false); webSettings.setSaveFormData(false);

En la carpeta de valores-

<resources> <dimen name="txtSize">26sp</dimen> </resources>

Espero que funcione.



Siempre puedes usar CSS para cambiar el tamaño de la fuente:

String text = "<html><style type=/"text/css/">p{text-align:justify;font-size:80%;}</style></head><body>"+"<p>"+getString(R.string.text1)+"</p>"+"</body></html>"; mWebView.loadData(text, "text/html", "utf-8");

Para mostrar Fater, como dijo Digvesh Patel antes:

webview.getSettings().setRenderPriority(RenderPriority.HIGH); webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);


WebSettings webSettings = webView.getSettings();

ya sea setTextSize o

webSettings.setTextSize(WebSettings.TextSize.SMALLEST);

Este también funciona:

webSettings.setDefaultFontSize(10);

Y Mostrar texto de inmediato:

webview.getSettings().setRenderPriority(RenderPriority.HIGH); webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webview.setBlockNetworkImage(true); webview.setLoadsImagesAutomatically(true); webwebviewSettings.setGeolocationEnabled(false); webview.setNeedInitialFocus(false); webview.setSaveFormData(false);