htmlandroid
❶ 如何使用html编写android app
可以用H5写。
我有安卓开发视频教程,要的密。先送你一集
❷ Android开发中对显示HTML内容的几种方式
首先,Android中显示Html内容,有3中方式:(目前我用到的有这3种)
1、可以利用Android原生的Html.fromHtml(str, imageGetter, tagHandler)来进行显示。(不过,我这边用了,即使加了页面加载动画,还是觉得非常慢,有大量图片,会导致OOM;如果图片不多的话,可以考虑)
2、利用第三方插件HtmlTextView。
GitHub地址:https://github.com/PrivacyApps/html-textview
图片加载很顺畅,使用方法也非常简单,不过,有两个注意事项:
(1)其中,HtmlHttpImageGetter有3个构造函数,可以根据自己的情况选择。
(2)加载大量图片的时候,会导致OOM内存溢出。针对于这个情况,HtmlHttpImageGetter有一个压缩图片的方法可以调用,可以进去查看它的公共方法。(不过,我这边显示的图片过大,每张1M左右,并且一下子有几十张,即使设置了压缩图片,还是会导致OOM问题,目前还没解决,有大神知道咋弄的,拜托指点一下,非常感谢!)
对了,这个第三方插件的基本用法,点击上面的连接,进去一看就知道了,很简单。
3、第三种,是我没办法的情况下想的:把html标签里的内容利用正则表达式拿出来,其中,文本内容用一个TextView代替,<img>标签图片用一个ImageView代替,其他相关的标签自行选择替换。说白了,就是创建一个个的TextView以及ImageView填充到布局里(LinearLayout之类的)。要说明的是:其中图片显示用Glide来实现。目前我这边测试的情况还是可以的,加载的速度非常快,也没因内存问题导致APP崩溃。
❸ android里面怎么加html文件
html页面(命名:Android.html放在assets文件夹下):::::
<!DOCTYPEhtmlPUBLIC"-//WAPFORUM//DTDXHTMLMobile1.0//EN""
<htmlxmlns="">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<scriptlanguage="javascript"type="text/javascript">
functionget4Android(str){
document.getElementById("show").innerHTML="Thisisamessagefromandroid:"+str;
}
</script>
</head>
<body>
<divid="show"></div>
</body>
</html>
Text.java代码:::
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.text.Editable;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnTouchListener;
importandroid.webkit.WebSettings;
importandroid.webkit.WebView;
importandroid.webkit.WebViewClient;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
{
privateButtonbutton;
privateTextViewtext;
privateWebViewweb;
privateEditTextedit;
privateHandlerhandler;
privatevoidinitView(){
=(Button)this.findViewById(R.id.button2);
web=(WebView)this.findViewById(R.id.webView1);
edit=(EditText)this.findViewById(R.id.editText1);
button.setOnClickListener(this);
}
privatevoidsetWebView(){
web.setWebViewClient(newWebViewClient());
web.requestFocus();
WebSettingssetting=web.getSettings();
setting.setJavaScriptEnabled(true);
web.setOnTouchListener(newOnTouchListener(){
@Override
publicbooleanonTouch(Viewv,MotionEventevent){
web.requestFocus();
returnfalse;
}
});
web.addJavascriptInterface(newSendAndroid(),"theKey");
web.loadUrl("file:///android_asset/android.html");
}
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
setWebView();
handler=newHandler(){
publicvoidhandleMessage(android.os.Messagemsg){
Stringstr=msg.obj.toString();
text.setText(str);
};
};
}
@Override
publicvoidonClick(Viewv){
Editableeditable=edit.getText();
web.loadUrl("javascript:get4Android(""+editable.toString()
+"")");
}
classSendAndroid{
(finalStringstr){
newThread(newRunnable(){
@Override
publicvoidrun(){
System.out.println("******"+str);
Messagemes=handler.obtainMessage();
mes.obj=str;
handler.sendMessage(mes);
}
}).start();
}
}
}
主要是:web.loadUrl("javascript:get4Android(""+editable.toString()+"")");中的“javascript:get4Android”要和html中的【functionget4Android(str){
document.getElementById("show").innerHTML="Thisisamessagefromandroid:"+str;
}】方法名相同
❹ 如何在android中使用html作布局文件
在android开发中,通常使用xml格式来描述布局文件。就目前而言,熟悉android布局及美化的人员少之又少,出现了严重的断层。大部分企业,其实还是程序员自己动手布局。这样既浪费时间和精力,也未必能达到理想的效果。但是,在企业级的android开发中,使用html页面进行布局,也有很多的优势(例如:简单,大部分开发人员及美工都熟悉,方便统一进行更新,管理)。据笔者了解,已经有不少的公司在使用这种方式进行布局开发。这也可能是一种趋势。
下面,我将给出一个实例代码,供大家学习使用html页面给android应用布局。
packagecom.dazhuo.ui;
importjava.util.List;
importorg.json.JSONArray;
importorg.json.JSONObject;
importcom.dazhuo.domain.Person;
importcom.dazhuo.service.PersonService;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.net.Uri;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.webkit.WebView;
{
privatePersonServiceservice;
privateWebViewwebview;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
service=newPersonService();
webview=(WebView)this.findViewById(R.id.webView);//android内置浏览器对象
webview.getSettings().setJavaScriptEnabled(true);//启用javascript支持
//添加一个js交互接口,方便html布局文件中的javascript代码能与后台java代码直接交互访问
webview.addJavascriptInterface(newPersonPlugin(),"Person");//new类名,交互访问时使用的别名
//<bodyonload="javascript:Person.getPersonList()">
webview.loadUrl("file:///android_asset/index.html");//加载本地的html布局文件
//其实可以把这个html布局文件放在公网中,这样方便随时更新维护例如webview.loadUrl("www.xxxx.com/index.html");
}
//定义一个内部类,从java后台(可能是从网络,文件或者sqllite数据库)获取List集合数据,并转换成json字符串,调用前台js代码
privatefinalclassPersonPlugin{
publicvoidgetPersonList(){
List<Person>list=service.getPersonList();//获得List数据集合
//将List泛型集合的数据转换为JSON数据格式
try{
JSONArrayarr=newJSONArray();
for(Personperson:list)
{
JSONObjectjson=newJSONObject();
json.put("id",person.getId());
json.put("name",person.getName());
json.put("mobile",person.getMobile());
arr.put(json);
}
StringJSONStr=arr.toString();//转换成json字符串
webview.loadUrl("javascript:show('"+JSONStr+"')");//执行html布局文件中的javascript函数代码--
Log.i("MainActivity",JSONStr);
}catch(Exceptione){
//TODO:handleexception
}
}
//打电话的方法
publicvoidcall(Stringmobile){
Intentintent=newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+mobile));
startActivity(intent);
}
}
}
转载
❺ android 怎样用html文件
html页面(命名:Android.html放在assets文件夹下):::::
<!DOCTYPEhtmlPUBLIC"-//WAPFORUM//DTDXHTMLMobile1.0//EN""
<htmlxmlns="">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<scriptlanguage="javascript"type="text/javascript">
functionget4Android(str){
document.getElementById("show").innerHTML="Thisisamessagefromandroid:"+str;
}
</script>
</head>
<body>
<divid="show"></div>
</body>
</html>
Text.java代码:::
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.text.Editable;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnTouchListener;
importandroid.webkit.WebSettings;
importandroid.webkit.WebView;
importandroid.webkit.WebViewClient;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
{
privateButtonbutton;
privateTextViewtext;
privateWebViewweb;
privateEditTextedit;
privateHandlerhandler;
privatevoidinitView(){
button=(Button)this.findViewById(R.id.button2);
web=(WebView)this.findViewById(R.id.webView1);
edit=(EditText)this.findViewById(R.id.editText1);
button.setOnClickListener(this);
}
privatevoidsetWebView(){
web.setWebViewClient(newWebViewClient());
web.requestFocus();
WebSettingssetting=web.getSettings();
setting.setJavaScriptEnabled(true);
web.setOnTouchListener(newOnTouchListener(){
@Override
publicbooleanonTouch(Viewv,MotionEventevent){
web.requestFocus();
returnfalse;
}
});
web.addJavascriptInterface(newSendAndroid(),"theKey");
web.loadUrl("file:///android_asset/android.html");
}
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
setWebView();
handler=newHandler(){
publicvoidhandleMessage(android.os.Messagemsg){
Stringstr=msg.obj.toString();
text.setText(str);
};
};
}
@Override
publicvoidonClick(Viewv){
Editableeditable=edit.getText();
web.loadUrl("javascript:get4Android(""+editable.toString()
+"")");
}
classSendAndroid{
(finalStringstr){
newThread(newRunnable(){
@Override
publicvoidrun(){
System.out.println("******"+str);
Messagemes=handler.obtainMessage();
mes.obj=str;
handler.sendMessage(mes);
}
}).start();
}
}
}
主要是:web.loadUrl("javascript:get4Android(""+editable.toString()+"")");中的“javascript:get4Android”要和html中的【functionget4Android(str){
document.getElementById("show").innerHTML="Thisisamessagefromandroid:"+str;
}】方法名相同
❻ HTML怎么转为android
{
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//***.html是你的主界面
super.loadUrl("file:///android_asset/****.html");
}
}
引入cordova-2.6.0.jar cordova自己搜一下可以了解大概
❼ 怎么用html5开发android
Android浏览器默认预览模式浏览 会缩小页面 WebView中则会以原始大小显示
Android浏览器和WebView默认为mdpi。hdpi相当于mdpi的1.5倍 ldpi相当于0.75倍
三种解决方式:1 viewport属性 2 CSS控制 3 JS控制
1 viewport属性放在HTML的<meta>中
Html代码
<SPAN style="FONT-SIZE: x-small"> <head>
<title>Exmaple</title>
<meta name=”viewport” content=”width=device-width,user-scalable=no”/>
</head></SPAN>
meta中viewport的属性如下
Html代码
<SPAN style="FONT-SIZE: x-small"> <meta name="viewport"
content="
height = [pixel_value | device-height] ,
width = [pixel_value | device-width ] ,
initial-scale = float_value ,
minimum-scale = float_value ,
maximum-scale = float_value ,
user-scalable = [yes | no] ,
target-densitydpi = [dpi_value | device-dpi |
high-dpi | medium-dpi | low-dpi]
"
/></SPAN>
2 CSS控制设备密度
为每种密度创建独立的样式表(注意其中的webkit-device-pixel-ratio 3个数值对应3种分辨率)
Html代码
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" href="hdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.0)" href="mdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 0.75)" href="ldpi.css" />
在一个样式表中,指定不同的样式
Html代码
#header {
<SPAN style="WHITE-SPACE: pre"> </SPAN> background:url(medium-density-image.png);
}
@media screen and (-webkit-device-pixel-ratio: 1.5) {
// CSS for high-density screens
#header {
background:url(high-density-image.png);
}
}
@media screen and (-webkit-device-pixel-ratio: 0.75) {
// CSS for low-density screens
#header {
background:url(low-density-image.png);
}
}
Html代码
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width" />
3 JS控制
Android浏览器和WebView支持查询当前设别密度的DOM特性
window.devicePixelRatio 同样值有3个(0.75,1,1.5对应3种分辨率)
JS中查询设备密度的方法
Js代码
if (window.devicePixelRatio == 1.5) {
alert("This is a high-density screen");
} else if (window.devicePixelRation == 0.75) {
alert("This is a low-density screen");
}
● Android中构建HTML5应用
使用WebView控件 与其他控件的使用方法相同 在layout中使用一个<WebView>标签
WebView不包括导航栏,地址栏等完整浏览器功能,只用于显示一个网页
在WebView中加载Web页面,使用loadUrl()
Java代码
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://www.example.com");
注意在manifest文件中加入访问互联网的权限:
Xml代码
<uses-permission android:name="android.permission.INTERNET" />
在Android中点击一个链接,默认是调用应用程序来启动,因此WebView需要代为处理这个动作 通过WebViewClient
Java代码
//设置WebViewClient
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
});
这个WebViewClient对象是可以自己扩展的,例如
Java代码
private class MyWebViewClient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().equals("www.example.com")) {
return false;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
}
之后:
Java代码
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new MyWebViewClient());
另外出于用户习惯上的考虑 需要将WebView表现得更像一个浏览器,也就是需要可以回退历史记录
因此需要覆盖系统的回退键 goBack,goForward可向前向后浏览历史页面
Java代码
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack() {
myWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
Java代码
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
❽ android开发时的界面开发用html么
不是哦,安卓开发的界面新手的话,可以用eclipse自带的ide拖拽,不过这个拖拽会版有很多问题。安卓本身的界权面布局,应该是标准的xml布局(虽然html也要遵循xml标准,但是两者不太相同),它也是用的标签(或称之为标记)布局,然后设置标记的相关属性来实现布局。有html基础的话,学习起来十分简单。要是有点java基础的话,安卓的学习就很顺利的。
❾ 如何利用html5开发android界面
三种解决方式:1 viewport属性 2 CSS控制 3 JS控制
1 viewport属性放在HTML的<meta>中
<SPAN style="FONT-SIZE: x-small"> <head>
<title>Exmaple</title>
<meta name=”viewport” content=”width=device-width,user-scalable=no”/>
</head></SPAN>
meta中viewport的属性如下
<SPAN style="FONT-SIZE: x-small"> <meta name="viewport"
content="
height = [pixel_value | device-height] ,
width = [pixel_value | device-width ] ,
initial-scale = float_value ,
minimum-scale = float_value ,
maximum-scale = float_value ,
user-scalable = [yes | no] ,
target-densitydpi = [dpi_value | device-dpi |
high-dpi | medium-dpi | low-dpi]
"
/></SPAN>
2 CSS控制设备密度
为每种密度创建独立的样式表(注意其中的webkit-device-pixel-ratio 3个数值对应3种分辨率)
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" href="hdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.0)" href="mdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 0.75)" href="ldpi.css" />
在一个样式表中,指定不同的样式
❿ html与android哪个好学
那我不得不说html和android那简直有着天壤之别!
html涉及的只是一些简单的标签语言
android的开发则涉及了多门编程语言,例如C,C++,java
我们从难度上来看
html可以说几乎没有什么难度
android没有哪一门编程语言是简单的,如果脑子够用可能1个月就能掌握,但熟练就是另外一回事了,这可跟html的标签不一样。脑子不行?那就甭想了,不可能学得会。因为你根本不能理解。安心学html去吧!
我们在从学习所需时间上看
html基本的语法掌握了,就完全没问题了。掌握语法也就是十几分钟甚至几分钟的事情
android就编程语言而言,那是需要每天都要练习的。久了不接触就会生疏
还有,您这个问题问的是单独的html标签语言和android相比较
但如果要开发整个网站也涉及到了多种语言
例如web的前端设计涉及到html css样式 javascript,并且如果要把界面设计得非常美观还涉及到了这之外的一些图形制作或者合成软件,例如photoshop。后台涉及到php asp等
事实上,WEB前端设计的javascript,后台的php以及asp,也属于编程语言。
但就其难度而言比Java以及C语言等要简单
学哪个好?学那个有出路?
想都不用想就可以告诉你,android肯定比网页开发更有出路
移动端就是未来的趋势,这不用说
最后,如果您有耐心,学习理解能力强。那么学android开发吧!
不说肯定有出路,但绝对的比学网站开发好
(此回复纯手打)