html5在android使用的技巧和问题
一、特效按钮的进展
之前的思路:css设置div的样式,在js中实现div对事件的响应,并改变div的样式,以实现动画效果。
1:以动画的形式
var bb = document.getElementById("element");
bb.onclick=function(){
bb.className="list-item-download-inner2";//改变类名,改变CSS样式
var t = setTimeout("init()",500); //以动画的方式,间隔0.5秒后将类名还原
}
这种方式只是一种相似的模拟,而且只有当手指离开按钮的时候这个方法才会执行。 而我们希望的效果是像本地代码中那样,手指点中一个效果,离开又一个效果。
2:在html5中有关于触摸屏的事件:touchstart, touchend, touchmove于是我们引入jquery.js,代码改为如下:
$('#element').bind("touchstart",function(e){
e.className="list-item-download-inner2";//手指点中时改变类名,
});
$('#element').bind("touchend",function(e){
e.className='list-item-download-inner'; //手指离开时,恢复类名,
});
这样,在网页中实现的效果,和在本地代码中实现的效果就一样了。算是一个小技巧,记下来。
public void loadData (String data, String mimeType, String encoding)
则会出现html代码中图片路径不对导致不能正常显示图片(通常是一个白色的固定大小的框,或者没有)
当把路径改为绝对路径加上file://都还无法解决 终于,在网上查资料的时候发现了这个函数,正好解决这个问题 public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding,String historyUrl) baseUrl是图片的目录,在html代码中就写关于此目录的相对路径就可以了,哇嘎嘎!~
附带代码解释: String htmlPath = "file:///mnt/sdcard/test/11.html";
String baseUrl = "file:///mnt/sdcard/test/";
webView.loadDataWithBaseURL(baseUrl, data, "text/html", "utf-8", null);
webView.loadUrl(htmlPath);
则两个调用都可以显示正常的html网页了,并且前一种可以对针对不同分辨率大小的屏幕做缩放了!! 加载assets文件中的html如下:
mWebView.loadUrl("file:///android_asset/demo.html");
则会出现html代码中图片路径不对导致不能正常显示图片(通常是一个白色的固定大小的框,或者没有)
当把路径改为绝对路径加上file://都还无法解决 终于,在网上查资料的时候发现了这个函数,正好解决这个问题 public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding,String historyUrl) baseUrl是图片的目录,在html代码中就写关于此目录的相对路径就可以了,哇嘎嘎!~
附带代码解释: String htmlPath = "file:///mnt/sdcard/test/11.html";
String baseUrl = "file:///mnt/sdcard/test/";
webView.loadDataWithBaseURL(baseUrl, data, "text/html", "utf-8", null);
webView.loadUrl(htmlPath);
则两个调用都可以显示正常的html网页了,并且前一种可以对针对不同分辨率大小的屏幕做缩放了!! 加载assets文件中的html如下:
mWebView.loadUrl("file:///android_asset/demo.html");