其实之前的初衷是想满足在Android中实现复制功能,使用TextView或者EditText来复制显示文字,在网上也找了一些资料,好像都不行,也许是我自己的问题;
最终想想使用WebView来实现这个功能。
在Android中使用WebView加载本地数据(文字)时容易出现的问题:
一、
WebView加载中文时乱码:
通常做法:
1). 通过给webView设置编码格式
WebSettings settings = webView.getSettings();
settings.setDefaultTextEncodingName("UTF-8") ;
2.加载时给之设置编码格式:
webView.loadData(str.toString(), "text/html","UTF-8");
3.在拼html的时候给拼上“
<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />。。。。。</html>” 通过以上三种方式得出结果,依然乱码,胡乱猜测可能是一个Bug。
最后解决办法:
采用loadDataWithBaseURL的方式加载(代码如下):
webView.loadDataWithBaseURL("", str.toString(), "text/html","UTF-8", "");
二、WebView内容对齐:
这个说起来其实是两个问题,第一个是禁止横向滚动,另外一个是根据webview宽度让其自动换行。
1.禁止横向滚动,在WebView的API其实是有提供的
WebSettings settings = webView.getSettings();
settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
从字面上就可以看出来“SINGLE_COLUMN”,单列的意思,它就是根据控件宽度来压缩内容大小。(还有另外两种就不多介绍了),
但是如果是加载图片是可行的,不过在文字的时候就不灵光了。不知其原因。(见第2个问题)
2.根据webview宽度让其自动换行
以上不可压缩文字大小,现在只剩下换行了,WebView是没有这个接口的,也许是我没找到,我采用的方式是让html自已去换行,也就是拼html达到自动换行目的。如下:
<p style=\"word-break:break-all;\">。。。。</p>
三、由于WebView设置Padding无效,所以也可以用html的方式给设置padding:
padding:12px;
最终代码:
WebView webView = new WebView(g_context);
webView.setScrollContainer(false);
webView.setScrollbarFadingEnabled(false);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
WebSettings settings = webView.getSettings();
settings.setDefaultTextEncodingName("UTF-8") ;
settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
settings.setBuiltInZoomControls(false); // 设置显示缩放按钮
settings.setSupportZoom(false); // 支持缩放
StringBuffer str = new StringBuffer();
str.append("<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><body><p style=\"word-break:break-all; padding:12px;\">")
.append("Hello World!")
.append("</p></body></html>");
webView.loadDataWithBaseURL("", str.toString(), "text/html","UTF-8", "");
分享到:
相关推荐
4. **图片加载优化**:使用如`WebSettings.setBlockNetworkImage(true)`阻止网络图片的自动加载,然后在JavaScript中添加逻辑,在图片进入视口时手动加载。 5. **资源预加载**:如果有必要,可以预先加载一些关键...
这个“Android webview加载网页.zip”文件可能包含了一个示例项目或者教程,帮助开发者理解如何在Android应用中有效地使用WebView。 WebView的使用涉及到以下几个关键知识点: 1. **WebView组件引入**:在...
总结,Android的WebView组件提供了丰富的功能,能够加载远程和本地资源,同时支持缓存机制,提高用户体验。开发者需要根据实际需求调整其配置和行为,以实现最佳的加载效果和性能。在处理图片资源时,特别要注意路径...
Android WebView 加载网页是移动应用开发中的一项基本需求。然而,在加载 HTTPS 和 HTTP 网页时,WebView 可能会出现一些问题,本文将详细介绍这两个错误的解决方法。 错误一:加载 HTTPS 请求的网页时,WebView ...
这篇博客“android之webView加载javascript”将深入探讨如何在Android应用中有效地使用WebView来加载和执行JavaScript代码。 首先,我们需要在AndroidManifest.xml中为应用添加互联网权限,因为加载网页内容需要...
在Android开发中,`WebView` 是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现与网页的交互。本示例“android中webview加载本地页面,并处理js事件”着重讲解如何利用`WebView`加载本地HTML页面,...
现在web app越来越多,webview控件的使用也越来越重要。 有时我们会在启动页或引导页之后,加载一个webview为控件的主页。 但如果跳转之后再加载,会看到webview有一个加载的过程,如果网页较大可能加载起来会很慢。...
下面我们将深入探讨如何在Android的WebView中加载和使用JS、CSS以及它们带来的优势。 1. Android WebView加载HTML Android的WebView可以通过调用`loadData()`或`loadDataWithBaseURL()`方法加载HTML字符串,或者...
在使用`file://`协议时,注意安全问题,因为从Android 8.0(API级别26)开始,WebView默认禁止加载`file://` URL。为了支持本地文件,我们需要开启这个权限: ```java webView.getSettings().setAllowFileAccess...
搜索很多资料后发现很多问题,都是关键代码片段,因为每个项目每个人产生的问题不同,Video在webview中加载不出来原因很多,可能是客户端少了参数,也可能是前端出了问题,经过研究后对Android WebView 加载H5Video...
Android WebView 加载 PDF 文件实现。其原理就是在 app 本地搭建一个 website ,然后利用 WebView 加载这个站点,站点去实现加载显示 PDF 的目的,站点其原理也是采用 js 框架去实现的。
本教程将详细讲解如何在Android的Webview中加载在线PDF文件,并且实现无限放大功能。 首先,我们需要了解WebView的基本用法。WebView是Android SDK提供的一种组件,用于在应用程序内显示网页内容。我们可以使用`...
这个"android使用webview加载网页"的主题涉及到多个知识点,以下将详细介绍这些内容。 首先,我们需要理解WebView的基本用法。在Android Studio中,我们可以通过在布局XML文件中添加`<WebView>`标签来创建一个...
在Android开发中,Webview是一个非常重要的组件,它允许我们加载和显示网页内容。这篇教程将详细介绍如何在Android应用中使用Webview加载assert目录下的HTML文件,并且使用户能够通过Webview拨打电话。 首先,我们...
做webview加载网页时,遇到一个问题,自带的webview错误页面不美观,于是自定义一个view提示用户,网上很多方法,也不稳定实现替换,结合网上的一些例子,加以优化和拓展,特此写一个完整版本的Demo供大家拿来直接...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容。这篇教程将详细介绍如何在WebView中加载HTML,并引用本地的资源,如图片和字体库。 首先,让我们理解WebView的基本用法。在...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中加载和显示网页内容。然而,对于复杂的网页,特别是那些包含大量图片的页面,优化图片的加载和显示至关重要。本篇将详细介绍如何在Android的...
本文将深入探讨如何使用Android WebView加载网页,包括基本使用、配置设置、与JavaScript交互以及处理网络权限等问题。 一、WebView基础 1. 添加依赖 在Android Studio项目中,首先确保在`build.gradle`(Module)...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用中加载和显示网页内容。本文将深入探讨如何利用WebView和JavaScript进行简单交互,以实现图文混排和查看大图的功能。 1. **WebView基本使用** - ...
本文将详细讲解如何在Android的WebView中加载网页,并获取URL参数值的方法。 首先,我们要明白WebView的基本使用。创建一个WebView可以通过以下代码: ```java WebView webView = new WebView(this); webView....