如何在android中使用html作布局文件

如何在android中使用html作布局文件,第1张

在android开发中,通常使用xml格式来描述布局文件。就目前而言,熟悉android布局及美化的人员少之又少,出现了严重的断层。大部分企业,其实还是程序员自己动手布局。这样既浪费时间和精力,也未必能达到理想的效果。但是,在企业级的android开发中,使用html页面进行布局,也有很多的优势(例如:简单,大部分开发人员及美工都熟悉,方便统一进行更新,管理)。据笔者了解,已经有不少的公司在使用这种方式进行布局开发。这也可能是一种趋势。

下面,我将给出一个实例代码,供大家学习使用html页面给android应用布局。

Java代码

package com.dazhuo.ui

import java.util.List

import org.json.JSONArray

import org.json.JSONObject

import com.dazhuo.domain.Person

import com.dazhuo.service.PersonService

import android.app.Activity

import android.content.Intent

import android.net.Uri

import android.os.Bundle

import android.util.Log

import android.webkit.WebView

public class MainActivity extends Activity {

private PersonService service

private WebView webview

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.main)

service =new PersonService()

webview = (WebView) this.findViewById(R.id.webView)//android内置浏览器对象

webview.getSettings().setJavaScriptEnabled(true)//启用javascript支持

//添加一个js交互接口,方便html布局文件中的javascript代码能与后台java代码直接交互访问

webview.addJavascriptInterface(new PersonPlugin() , "Person")//new类名,交互访问时使用的别名

// <body onload="javascript:Person.getPersonList()">

webview.loadUrl("file:///android_asset/index.html")//加载本地的html布局文件

//其实可以把这个html布局文件放在公网中,这样方便随时更新维护 例如 webview.loadUrl("www.xxxx.com/index.html")

}

//定义一个内部类,从java后台(可能是从网络,文件或者sqllite数据库) 获取List集合数据,并转换成json字符串,调用前台js代码

private final class PersonPlugin{

public void getPersonList(){

List<Person>list = service.getPersonList()//获得List数据集合

//将List泛型集合的数据转换为JSON数据格式

try {

JSONArray arr =new JSONArray()

for(Person person :list)

{

JSONObject json =new JSONObject()

json.put("id", person.getId())

json.put("name", person.getName())

json.put("mobile",person.getMobile())

arr.put(json)

}

String JSONStr =arr.toString()//转换成json字符串

webview.loadUrl("javascript:show('"+ JSONStr +"')")//执行html布局文件中的javascript函数代码--

Log.i("MainActivity", JSONStr)

} catch (Exception e) {

// TODO: handle exception

}

}

//打电话的方法

public void call(String mobile){

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ mobile))

startActivity(intent)

}

}

}

Java代码

package com.dazhuo.domain

public class Person {

private Integer id

public Integer getId() {

return id

}

public Person(Integer id, String name, String mobile) {

super()

this.id = id

this.name = name

this.mobile = mobile

}

public void setId(Integer id) {

this.id = id

}

public String getName() {

return name

}

public void setName(String name) {

this.name = name

}

public String getMobile() {

return mobile

}

public void setMobile(String mobile) {

this.mobile = mobile

}

private String name

private String mobile

}

Java代码

package com.dazhuo.service

import java.util.ArrayList

import java.util.List

import com.dazhuo.domain.Person

public class PersonService {

public List<Person>getPersonList()

{

List<Person>list =new ArrayList<Person>()

list.add(new Person(32, "aa", "13675574545"))

list.add(new Person(32, "bb", "13698874545"))

list.add(new Person(32, "cc", "13644464545"))

list.add(new Person(32, "dd", "13908978877"))

list.add(new Person(32, "ee", "15908989898"))

return list

}

}

Html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8">

<title>Insert title here</title>

<script type="text/javascript">

function show(jsondata){

var jsonobjs = eval(jsondata)

var table = document.getElementById("personTable")

for(var y=0y<jsonobjs.lengthy++){

var tr = table.insertRow(table.rows.length)//添加一行

//添加三列

var td1 = tr.insertCell(0)

var td2 = tr.insertCell(1)

td2.align = "center"

var td3 = tr.insertCell(2)

td3.align = "center"

//设置列内容和属性

td1.innerHTML = jsonobjs[y].id

td2.innerHTML = jsonobjs[y].name

td3.innerHTML = "<a href='javascript:Person.call(\""+ jsonobjs[y].mobile+ "\")'>"+ jsonobjs[y].mobile+ "</a>"

}

}

</script>

</head>

<!-- js代码通过webView调用其插件中的java代码 -->

<body onload="javascript:Person.getPersonList()">

<table border="0" width="100%" id="personTable" cellspacing="0">

<tr>

<td width="20%">编号</td><td width="40%" align="center">姓名</td><td align="center">电话</td>

</tr>

</table>

<a href="javascript:window.location.reload()">刷新</a>

</body>

</html>

⑴ 5做移动端开发有什么优势

HTML5的前景是非抄常好的,企袭业现在安卓、iOS开发人员都在学习HTML5混合开发,节约成本、一专多能是未来很多企业用人趋势!HTML5工程师在今后的工作中与Android、iOS工程师对接的几率非常大。混合式开发思想培训出来的学员比单一课程学员薪水高至少2000元,同时企业也更愿意去花更多的钱来聘请那些了解比较全面的开发人员!混合式开发讲师需要同时精通Android、iOS、HTML5等多门课程,这样才能在教学过程中融合混合式开发思想,让学员能够同时了解一些与本课程最相关的技术,为学员今后在工作中的对接和配合工作提供极大助力,对学员今后的职业发展也会有很大帮助。可以参加HTML5培训班的学习,拥有“混合式开发特聘讲师”这一大特色的,混合式开发课程对讲师的要求非常之高,至少同时具备3年或以上教学和技术经验的讲师才可以胜任,这是其他机构无法提供的!学习主要也是靠自己的,现在HTML5很火,前景未来5~10年内绝对好,好好学习拿高薪工作是没问题的。

⑵ 主流HTML5移动web开发框架

肯定使用框架啊,不然还原生 JS、自己写样式?

H5 做移动开发也分两种,一种就是正常的网版页,权一种是封装的成 App 在手机上跑的。下面我只大致介绍一下又哪些框架,具体的特性不是三两句能说完的,题主可以自行搜索相关资料。

后者比较知名的框架就是 PhoneGap、MUI 等等了。

而前者具体分的话还分 CSS 框架和 JS 框架。样式框架有很多了,常见的有 jQuery Mobile、Bootstrap、Kendo UI、Amaze UI 等等。JS 框架一般是 AngularJS、Backbone、ReactJS 等等,但说实话这些 JS 框架都比较繁重,一般是为比较复杂的场景设计的,如果你的页面需求很简单,那么大可以不用它们只用样式框架就好了。

值得一提的是国内 BAT 三大巨头也分别有自己的 H5 框架,并且都已经开源了,网络的是 GMU(Global Mobile UI)、Clouda+、EFE 这三个,阿里的是 Kissy Mobile,腾讯的是 Frozen UI。

⑶ 使用5开发移动端应用采用什么框架

随着使用智能手机的人越来越多,手机网站开发项目也成为一种潮流。可是您知道机网站开发框架有几种吗?

1. LungoJS

这个是被认为开发移动网站最好的HTML5开发框架,使用 HTML5/CSS3 和 JavaScript 技术。可帮助创建基于 iOS、 Android、 Blackberry 和 WebOS 平台的应用程序。该框架可利用当前移动设备的高级特性,可捕捉事件包括滑动、触屏、长按等。无需使用图片,全部采用向量声称。

Lungo.JS 无需服务器端支持,可帮助实现 HTML5 特性,包括 WebSQL、Geolocation、 History、 Device orientation 等等。这是一个完全可定制的框架,可用来创建应用、游戏等程序。

2.Kendo UI

Kendo UI是一个HTML5平台,开发者利用它可以开发新颖的、交互的移动应用程序和网站。该框架提供了大量的动画和丰富的拖拽功能、模板功能以及提供了将近10款客户端常用的数据绑定小部件,如图表、组合框以及常用表格。

3.Jo

该框架可以创建像本地一样的应用,并且兼容任何 *** 作系统,无论是Blackberry、iOS还是Android。并且提供许多HTML5小部件。使用它可以解决任何动画设计方面的问题。

4.Sencha Touch

Sencha Touch是第一个基于HTML5的移动应用框架,利用JavaScript、HTML5和CSS3来构建移动应用程序,该框架利用本地代理存储离线数据,具体使用HTML5来渲染视频和音频组件。

可以让你的Web App看起来就像本地应用程序一样。美丽的用户界面组件和丰富的数据管理,全部基于最新的HTML5和CSS3的Web标准,全面兼容Android和Apple iOS设备。

5.52 Framework

52 Framework拥有16列的网格模板。该框架来自于CSS3样式里的新“Selection”、阴影、圆角以及有效的HTML5标记。该框架还提供了一些特殊的脚本和样式用于IE6。

6.LimeJS

LimeJS 是一个 JavaScript 游戏开发框架,用于快速构建运行于触屏设备和桌面浏览器的游戏。允许开发者创建基于 HTML5 的游戏,支持主流浏览器包括iOS。

7. G5 Framework

如果你想要快速实现Web开发,并且想要重用ant主题或应用程序或网站项目,那么G5 框架是您最好的选择,因为该框架旨在提升开发效率、减少代码。该框架采用特色的PHP激活类、SEO优化技术。除了G5自身所带的这些功能特性外,它还集成其他许多功能,例如Orbit Slider、CSS3 PIE、Reveal Modals、CSS3 Buttons和Tipsy Tooltips等。

8.jQuery Mobile

jQuery Mobile(jQueryMobile)是 jQuery在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台。jQuery Mobile开发团队说:能开发这个项目,我们非常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动Web网站。我们将尽全力去满足这样的需求。

9.Phone Gap

PhoneGap是一个开源的开发框架,使用HTML,CSS和JavaScript来构建跨平台的的移动应用程序。它使开发者能够利用iPhone,Android,Palm,Symbian,Blackberry,Windows Phone和Beda智能手机的核心功能——包括地理定位,加速,联系人,声音和振动等。

⑷ HTML5移动前端webapp有什么推荐的书籍或者建议

《响应式Web设计—HTML5和CSS3实战》

封面是一只瓢虫,这本其实响应式的东西讲得比较少,大半内容是内关于介绍h5和css3的基础知识,全书主要是带领读者做一个小网页来写的,适合新手入门,如果同时想了解h5和css3和响应式设容计入门,这本还不错

《响应式web设计实践》

《跨终端web》

《5触摸界面开发与设计》

⑸ 5移动端网页开发和pc端的区别

pc端目前仅使用5部分功能做渐进增强,移动端针对智能机开发则可以完全迁移到内5上来,容低端java手机使用wap技术开发。明确一个概念,5 = 新版标记语言 + css3 + 脚本API;但从标记语言来比较5 和 4之间的差别: 1 更加语意

⑹ 5怎样做移动端开发

随着互联网的高速发展,软件行业更加火爆,几乎高薪职位都与软件行业挂勾,回程序员成了高薪的标志。答HTML5作为近几年非常火的软件开发语言,更是得到了多人一致的好评和青睐。既然HTML5这么火,学习这门课程当然前景更可观。

只要努力学到真东西,前途自然不会差。如果你想学好HTML5开发语言,一般在2w左右,应该根据自己的实际需求去实地看一下,先去试听之后,再选择比较适合自己的,希望能给你带去帮助。

⑺ 5混合app开发需要掌握哪些技术

HTML5开发就业班:

全栈:HTML5 + PHP + MySQL

第一阶段:前端页面重构:PC端网站布局、HTML5+CSS3基础项目、WebAPP页面布局;

第二阶段:JavaScript高级程序设计:原生JavaScript交互功能开发、面向对象开发与ES5/ES6、JavaScript工具库自主研发;

第三阶段:PC端全栈项目开发:jQuery经典特效交互开发、HTTP协议,Ajxa进阶与后端开发、前端工程化与模块化应用、PC端网站开发、PC端管理信息系统前端开发;

第四阶段:移动端项目开发:Touch端项目、微信场景项目、应用Vue.js开发WebApp项目、应用Ionic开发WebApp项目、应用React.js开发WebApp;

第五阶段:混合(Hybrid)开发:各类混合应用开发;

第六阶段:NodeJS全栈开发:WebApp后端系统开发。

HTML5开发好程序:

不会原生开发(iOS、Android),后端应用(NodeJs、Java、PHP)开发,游戏开发的HTML5工程师不是一个好的工程师。

全栈工程师:

大前端:HTML5(Web前端)、Android(Native前端)、Hybrid(混合前端)。

后端:多栖后端(NodeJs、Java、PHP)。

第一阶段:前端页面重构:PC端网站布局、HTML5+CSS3基础项目、WebAPP页面布局;

第二阶段:JavaScript高级程序设计:原生JavaScript交互功能开发、面向对象开发与ES5/ES6、JavaScript工具库自主研发;

第三阶段:PC端全栈项目开发:jQuery经典特效交互开发、HTTP协议,Ajxa进阶与后端开发、前端工程化与模块化应用、PC端网站开发、PC端管理信息系统前端开发;

第四阶段:移动端项目开发:Touch端项目、微信场景项目、应用Vue.js开发WebApp项目、应用Ionic开发WebApp项目、应用React.js开发WebApp;

第五阶段:混合(Hybrid)开发:各类混合应用开发;

第六阶段:NodeJS全栈开发:WebApp后端系统开发、基于Socket.io聊天系统开发。

第七阶段:游戏开发:游戏类项目开发(植物大战僵尸、捕鱼达人等)。

第八阶段:Java开发:企业级开发技术架构实战、商城项目整站开发。

第九阶段:PHP开发:微信管理系统、商城系统、主流PHP免费系统的使用。

第十节段:Android开发:外卖系统开发、Android混合开发项目。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6301213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-20
下一篇 2023-03-20

发表评论

登录后才能评论

评论列表(0条)

保存