其实之前的初衷是想满足在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", "");



更多相关文章

  1. android EditText设置不可写
  2. android“设置”里的版本号
  3. 在Fragment中设置控件点击方法,执行失败。
  4. Android(安卓)闹钟管理类的使用
  5. Android设置通知栏/状态栏透明改变通知栏颜色和app最上部分颜色
  6. android 设置中划线 下划线等
  7. Andorid Dialog 示例【慢慢更新】
  8. Android(安卓)P SystemUI之StatusBar UI布局status_bar.xml解析
  9. Android--SoLoader,android动态加载so库

随机推荐

  1. android中textview设置为多行文本时,如何
  2. Android最新版本号与API级别对应关系
  3. android 应用程序不出现在最近打开程序列
  4. 2013.08.29——— android ObjectAnimato
  5. android 开发中总结的一些经验
  6. Android自动化测试之MonkeyRunner-之getP
  7. Android 复习笔记之图解Service
  8. Android: Your JS Engine is not always
  9. ImageButton隐藏边框
  10. 共享一个Ext版的Toast·就是可以自动消失