`
dubinwei
  • 浏览: 55265 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android WebView

阅读更多
详细内容可以查看我的网站:[url]http://1.playandroid.duapp.com/index.jsp [/url]
1、设置WebView为透明:
android:background="#00000000"
android:cacheColorHint="#00000000"
WebView.setBackgroundColor(0);

2、WebView 显示sd卡图片:
webView.loadDataWithBaseURL(null,"<img src=\"file://sdcard/dcim/Camera/2010-12-15_08-33-50_583.jpg\" />", "text/html", "utf-8", null);

3、WebView显示字符串
webView.loadDataWithBaseURL("fake://not/needed", s1, "text/html", "utf-8", "");

4、设置WebView中显示字体的大小
public static final TextSize[] FONT_SIZES = new TextSize[]{
    TextSize.SMALLER,TextSize.NORMAL,TextSize.LARGER};
private WebSettings wb;
wb = mWebViewRightContent.getSettings();
wb.setTextSize(FONT_SIZES[iFontSizeId]);

字体大小:
public enum TextSize {
    SMALLEST(50),
    SMALLER(75),
    NORMAL(100),
    LARGER(150),
    LARGEST(200);
    TextSize(int size) {
        value = size;
    }
    int value;
}

5、WebView显示html文件时,若要达到和PC上浏览器显示的效果完全一样,只需对WebView做一下设置即可:
//适应全屏  39适应竖屏    57适应横屏
mWebView.setInitialScale(39);

注意的是:html只字体太小的话,在Android手机或开发板上显示的就相当的小。一般6、7号字体吧!

6、WebView设置渐变:
android:fadingEdge="vertical"
android:fadingEdgeLength="20px"
(垂直方向,上下渐变区域为20px)

7、设置WebView可触摸放大缩小:
mWebView.getSettings().setBuiltInZoomControls(true);

8、WebView双击变大,再双击后变小,当手动放大后,双击可以恢复到原始大小,如下设置:
webView.getSettings().setUseWideViewPort(true);

9、几种加速WebView加载的方法
· 提高渲染的优先级
webView.getSettings().setRenderPriority(RenderPriority.HIGH);
· 使用webView.getSettings().setBlockNetworkImage,把图片加载放在最后来加载渲染
webView.getSettings().setBlockNetworkImage(true);

10、将字符串转换成HTML形式的文件显示:
//获取的字符串
String sDetails = cursor.getString(cursor.getColumnIndex("sChinese"));
//按行截取字符串,将其存放在数组中
String[] str = sDetails.split("\n");
String s1 = "";
//遍历数组进行判断,如果条件成立,就添加设定的css样式
for(int i = 0;i < str.length;i ++){
    if(str[i].trim().startsWith("vt.")){
        str[i] = "<h3 style=\"font-size:10px; color:#000; background:#FCFCFC; padding:3px 5px;\">" + str[i] + "<h3>" + "\n";
    }else if(getMark(str[i].trim())){
    str[i] = "<h4 style=\"font-size:10px; color:#F60; font-weight:normal;\">" + str[i] + "</h4>" + "\n";
    }else if(str[i].trim().startsWith("〖")){
        str[i] = "<span style=\"color:#333; font-size:10px; color:#F60\">" + str[i] + "</span>" + "\n";
    }else {
        str[i] = "<p style=\"line-height:16px; font-size:10px;color:#666;\">" + str[i] + "</p>" + "\n";
    }
    //将修改后的字符串拼接起来
    s1 += str[i];
}
//用WebView将字符串以HTML的形式显示出来
webView.loadDataWithBaseURL("fake://not/needed", s1, "text/html", "utf-8", "");

11、WebView加载本地资源文件html时,如果html中有图片,加载时会先加载文字,后加载图片,因此会出现排版混乱的情况,好像加载了两遍,这种情况是因为,html中图片的高度是自适应的,没有设定具体的值,图片加载出来后,并没有将文字往下挤压,所以出现了重叠的现象,解决方法:
将html中图片的宽高设成固定的值,这样加载文字后,会将图片的位置预留出来,之后图片加载出来后会直接在预留的位置显示,不会出现重叠的现象。
(适用于自己编写的HTML文件,如果加载的是网络地址URL,参考上面的第9点)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics