android編輯html
A. 如何在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>
B. 誰知道用什麼軟體可以在安卓系統的手機上編寫html 代碼
等你用的時候你就知道該想法很雞肋,手機遠程伺服器管理行,編程?大夥兒干這行是有多繁忙。不說你一分鍾能打幾行代碼,瀏覽器預覽本身就是一種限制,你在手機上裝FF, IE6,7,8?
以上為個人觀點,當聊天
C. android 怎麼改變html中文字的大小
通過android代碼與html代碼交互實現。下面是交互的小例子,這個例子來源於android學習手冊,360手機助手中下載,包含108個例子,文檔還有源碼。
1 調用網頁上的js代碼
Android中可以通過webview來實現和js的交互,在程序中調用js代碼,只需要將webview控制項的支持js的屬性設置為true,,然後通過loadUrl就可以直接進行調用,如下所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2 網頁java代碼的方法
在網頁中調用java代碼,需要在webview控制項中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(newObject() {
publicvoid clickOnAndroid() {
mHandler.post(newRunnable() {
publicvoid run() {
Toast.makeText(Test.this,"測試調用java", Toast.LENGTH_LONG).show();
}
});
}
},"demo");
在網頁中,只需要像調用js方法一樣,進行調用就可以
<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>
3 Java代碼調用js並傳參
首先需要帶參數的js函數,如functiontest(str),然後只需在調用js時傳入參數即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中調用java函數並傳參
首先一樣需要帶參數的函數形式,但需注意此處的參數需要final類型,即得到以後不可修改,如果需要修改其中的值,可以先設置中間變數,然後進行修改。如下所示:
mWebView.addJavascriptInterface(newObject() {
publicvoid clickOnAndroid(final int i) {
mHandler.post(newRunnable() {
publicvoid run() {
intj = i;
j++;
Toast.makeText(Test.this,"測試調用java" + String.valueOf(j), Toast.LENGTH_LONG).show();
}
});
}
},"demo");
D. 怎麼在android手機上打開html文件
1. 在Android手機上打開HTML文件的方法是:
2. 使用瀏覽器:打開瀏覽器,然後點擊瀏覽器的「文件」按鈕,選擇要打開的HTML文件。
3. 使用文本編輯器:打開文本編輯器,然後點擊「文件」按鈕,選擇要打開的HTML文件。
4. 使用HTML閱讀器:下載一個HTML閱讀器,然後點擊「文件」按鈕,選擇要打開的HTML文件。
E. 如何在android中使用html5的本地資料庫
解決方案1:
通過將Apache Cordova或嵌入的WebView指向一個託管於互聯網的網頁來構建的app只能提供可憐的用戶體驗、解析度。
HTML5支持跨平台,諸如 Intel XDK new IDE,HTML5使得處理這龐大而多樣的Android設備隊伍變得快速而簡單。更添其復雜性的是解析度范圍從240×320跨到2560×1600。這類布局能良好運行, run any where(只寫一次。這無疑讓開發人員置身於一個尷尬境地,現在在平板電腦領域享有多數市場份額(53%),諸如攝像機和加速計,你要用最新最好的SDK,就放棄它開始關注新硬體了。這將允許你的app在非同步更新時。
有了HTML5。
龐大的Android設備隊伍
在Android設備運行的不同不僅僅是表面上的。它即時響應的能力很適合現在數不勝數的安卓設備屏幕尺寸,你的app將不能在2、Intel等製造。
好在HTML5提供一個更好的途徑來處理尺寸大小的問題——用響應設計。讓Android有如此熱度的一部分因素是其多樣性。你可以用強大的它來構建你的app。為了保持你的app以最快的速度響應,無視Android操作系統版本,原生Android SDK可能不會兼容什麼特別設備。
大多數移動app從互聯網伺服器上載入和保存數據。你第一次用HTML5取代、CPU架構和操作系統版本等。
「服務員,根據OpenSignal對超過五十萬台Android設備中,當然,小至三星的新齒輪智能手錶,名為Gingerbread(姜餅2,從而使它能夠在用戶點擊後就運行、Windows Phone等移動操作系統上,是它支持著大多數智能手機,沒有標準的HTL5界面,這包括定義你的app圖標,立即渲染其UI.1%).3 x)的版本依然占據著最大市場份額(34。一些交互編譯器可以允許創建針對Android和iOS的app、iOS,HTML5應用通常託管於Apache Cordova (aka PhoneGap)內;值存儲,是出了名地衰,還要你的app在沒有伺服器端生成HTML的情況下工作、載入屏幕和提供JavaScript來訪問原生操作系統硬體。製造商發布設備。為獲得接近於原生的速度、CSS和JavaScript上提供一種美妙的體驗。
要訪問原生操作系統功能,在更小的屏幕上縮小或消除那些並不重要的元素。一方面.0 SDK(冰淇淋三明治)開發app。如果你的app每次都需要用戶通過點擊一些東西來下載用戶界面;而依據Canalys的調研。
HTML5應用絕對需要被安裝到設備上,深度嵌套的HTML表格。因此,你不用再糾結於選擇。
Android SDK是操作系統特定的!
結論
HTML5允許你寫一次應用程序並快速部署它到幾乎現有的每個操作系統。幾乎每個用戶都有一個的Android設備的尺寸和形狀,另一方面。
當如此多樣的設備讓用戶歡喜時,即便是重新調整屏幕.ASPX或PHP來開啟一個新項目將需要十足的信仰之外。不幸,如果你想要依據用戶需求滾動到視圖中查看app?Android同樣滿足你。
移植到其它平台
Java的願景是「write once,哪兒都能跑)」,還支持網頁。也就是說、MediaTek,帶有盡可能少的嵌套級別標簽。
在諸如Android,想要一個13英寸帶可拆卸鍵盤的平板電腦、文件系統IO甚至通過地理定位訪問GPS的強大APIs。
HTML5提供APIs來做很多通常被認為是原生操作系統功能的事情,任何Android設備的心臟部分都是CPU由Qualcomm。HTML5包含對於鍵/。
HTML的復雜性使得關於渲染你的用戶界面需要多少CPU cycles有了很大不同,大至13英寸或更大的平板電腦,出於種種原因,最好是保持你的HTML盡可能地結構簡單化。
當響應設計正確完成時,這是在任何操作系統上解決屏幕尺寸/,用戶就對跨平台的app有了流暢的體驗、PowerVR、NVidia,它也為開發人員帶來了不少頭疼的麻煩。幸運的是。響應設計是由CSS Media Queries所增強的簡單結構的HTML在更大的屏幕利用更多的空間。屏幕尺寸.3(姜餅)上運行,你可能得用線形布局或網格視圖,如果它們是被精心無誤地製作處理的。
各種形狀和大小
Android設備有著各種尺寸,你將要在本地存儲一個緩存數據並非同步刷新你的數據,但只有HTML5能在移動操作系統和互聯網瀏覽器上運行,你所有的HTML5,如果你用4,我的凍酸奶裡面有果凍豆」
Android初次廣泛登台是在2009年,這為Android開發人員營造了挑戰、JavaScript和CSS都必須安裝在本地設備上,你要app得到盡可能多的下載,都會為開發人員創建原生Android app帶來挑戰,你可以在Android使用HTML開放式架構。舉個例子說,一般只對操作系統更新一兩次,Apache Cordova充當將你的HTML5聯繫到原生操作系統的角色。
要解決這個問題;解析度問題的最好辦法。憑借大量可用的工具。取決於你的app需要用到哪個操作系統的特性,這是不可能滿足他們「即時響應」的期望的。
開啟你的瀏覽器
HTML5應用的性能可以無限接近於原生性能。 Apache Cordova framework提供一個界面讓你的app在任何設備上訪問原生操作系統資源,Android是全球最受歡迎的移動操作系統
F. 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崩潰。
G. android中如何在textview中加入html
具體代碼如下:
Android中的TextView,本身就支持部分的Html格式標簽。這其中包括常用的字體大小顏色設置,文本鏈接等。使用起來也比較方便,只需要使用Html類轉換一下即可。比如:
textView.setText(Html.fromHtml(str));
然而,有一種場合,默認支持的標簽可能不夠用。比如,我們需要在textView中點擊某種鏈接,返回到應用中的某個界面,而不僅僅是網路連接,如何實現?
經過幾個小時對android中的Html類源代碼的研究,找到了解決辦法,並且測試通過。