當前位置:首頁 » 安卓系統 » android開發html

android開發html

發布時間: 2023-04-28 14:22:51

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

在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/html; charset=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=0; y<jsonobjs.length; y++){
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>

2. 如何利用HTML&JS等前端知識開發Android應用

最近接觸了一個app,看了源代碼就是你說的方法開發的。利用的是appcan。


目前,最好的方法是使用PhoneGap、AppCan不適合畢業設計,因為它是閉源的商業運作。PhoneGap是只有骨架,支持您的應用程序,真正的肌肉系統或JS,業內普遍選擇jQuery,但效率相比在實際應用中的坑。考慮到效率,推薦使用AppFramework,但其文件是凌亂的,不完整的,和畢業設計是完全無用的。事實上,困難不在於應用程序,而在於後台。


我認為在裡面用個webvie控制項做web啊,然後服務端用個jqm之類的juqery庫,當作web開發就好了。

3. 如何利用html5開發android界面

H5開發安卓界面需要注意以下三點:
(上)包括Android設備多解析度的問題,Android中構建HTML5應用程序基礎
(中)包括Android與JS之間的互動,Android處理JS的警告對話框等,Android中的調試
(下)包括本地儲存在Android中的應用,地理位置的應用,離線應用的構建
進入正題
● 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的屬性如下:
<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" />
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不包括導航欄,地址欄等完整瀏覽器功能,只用於顯示一個網頁。

4. android開發時的界面開發用html么

android開發時的界面不使用html,使用的xml文件姿畝消來配置界面。
android開發中通常使用的xml可視化,對界面進行組織,在activity中載入改xml,便可顯示,使用java代碼對組跡知件進行控制。當然了,現在耐晌手機端,使用html5嵌入到界面當中。

5. android 開發到底有沒有必要學習html

android開發如果不接觸pc端的源碼塵中設計那就沒太大必要
1、如果涉及的項目是更多廣泛的人群,網民不知道瀏覽器還有這么多的版本,只會使用操作系統上自帶的瀏覽器,肆純那還得使用HTML4,還必須做兼容操作。
2、HTML5里有很多的特性在低瀏覽器里是不支持的,這要看涉及的項目的受眾人群,如果是做移動端開發,或者PC上這種CSDN,那直接用HTML5就可以了,創客學院移動端里的瀏覽器已經支持HTML5了,而且還有訪問CSDN的人群基裂兄咐本沒有使用IE8以下版本的瀏覽器。

6. android開發中的html與css

  1. 理論上Android開發,跟html和css開發是兩碼事啟凱情;

  2. 目前大部分Android應用需要幾個方面配合,伺服器端介麵包括json原生介面和web頁面;

  3. web頁面一般是前端工程師的事搏昌情,html+css+javascript開發;

  4. 伺服器端原生介面,都需要後端php開發或java等伺服器語言開發;

  5. 一般Android不負責html+css,但是可能會用到,如果你全部用悄銀喚安卓自己來畫頁面也可以。

7. 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崩潰。

8. 安卓開發html可以代替xml嗎

不可以
(一)、語法要求不同:1. 在html中不區分大小寫,在xml中嚴格區分。2. 在HTML中,有時不嚴格,如果上下文清楚地顯示出段落或做春者列表鍵在何處結尾,那麼你可以省略

或者之類的結束標記。在XML中,是嚴格的樹狀結構,絕對不能省略掉結束標記。3. 在XML中,擁有單個標記而沒有匹配的結束標記的元素必須用一個/ 字元作為結尾。這樣分析器就知道不用查找結束標記了。4. 在XML中,屬性值必須分裝在引號中。在HTML中,引號是可用可不用的。 5. 在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應的值。 6. 在XML文檔中,空白部分不會被解析器自動刪除;但是html是過濾掉空格的。(二)、標記不同:1、html使用固有的標記;而xml沒有固有的標記。2、Html標簽是預定義的;XML標簽是免費的、自定義的、可擴展的。(三)、作用不同:1. html是用純升耐來顯示數據的;xml是用來描述數據、存放數據的,所以可以作為持久化的介質!Html將數據和顯示結合在一起,在頁面中把這數據顯示出來;xml則將數據和顯示分開。 XML被設計用來描述數據,其焦點是數據的內容。HTML被設計用來顯示數據,其焦點是數據的外觀。2. xml不是HTML的替代品,xml和html是兩種不同用途的語言。 XML 不是要替換 HTML;實際上XML 可以視作對 HTML 的補充。XML 和HTML 的目標不同HTML 的設計目標是顯示數據並集中於數據外觀,而XML的設計目標是描述數據並集中於數據的內容。3. 沒有任何行為的XML。與HTML 相似,XML 不進行任何操作。(共同點)4. 對於XML最好的形容可能是: XML是一種跨平台的,與軟、硬體無關的,處理與傳輸信息的工具。5. XML未來將會無所不在。XML將成為最普遍的數據處笑碼理和數據傳輸的工具。

熱點內容
資料庫表設計教程 發布:2025-09-16 10:50:47 瀏覽:340
朋友圈緩存如何清除 發布:2025-09-16 10:49:57 瀏覽:438
sqlserver數據類型 發布:2025-09-16 10:41:16 瀏覽:732
如何配置全站時間同步系統 發布:2025-09-16 10:19:13 瀏覽:167
java解析json文件 發布:2025-09-16 10:10:41 瀏覽:968
車配置字母怎麼看 發布:2025-09-16 10:09:32 瀏覽:408
煙台電腦伺服器維修 發布:2025-09-16 10:08:45 瀏覽:268
編譯命令cl 發布:2025-09-16 09:57:21 瀏覽:520
小君直播密碼是多少 發布:2025-09-16 09:25:46 瀏覽:610
用中文編譯的編程軟體 發布:2025-09-16 09:04:37 瀏覽:152