当前位置:首页 » 安卓系统 » androidhtmlstring

androidhtmlstring

发布时间: 2023-02-15 17:56:14

‘壹’ 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");

‘贰’ Android 在strings.xml中定义html标签

第二种情况 Android在通过Context.getString获取字符串时做了处理,把Html标记都去掉了,这个可以把断点跟踪一下。所以第二种情况没有倾斜加粗的效果。
第二种情况这么修改就有效果了:
textView.setText(this.getText(R.string.tagged_string));

这也说明了Context.getText 和 Context.getString的区别。

‘叁’ 请问如何用android解析html格式的字符串,并显示在一般控件中

private void loadHTML(){
String html = "<!DOCTYPE html>\n" +
"<html>\n" +
"<head>\n" +
" <title></title>\n" +
"</head>\n" +
"<body>\n" +
" Hello!耶耶耶<br/>\n" +
"HTML Page here!\n" +
"<img src=\"img/bdlogo.gif\"></im>\n" +
"</body>\n" +
"</html>";

webView.loadData(html, "text/html", "UTF-8");
// webView.loadDataWithBaseURL(null, html, "text/html", "UTF-8", null);
}

‘肆’ android中如何在textview中加入html

具体代码如下:

Android中的TextView,本身就支持部分的Html格式标签。这其中包括常用的字体大小颜色设置,文本链接等。使用起来也比较方便,只需要使用Html类转换一下即可。比如:

textView.setText(Html.fromHtml(str));

然而,有一种场合,默认支持的标签可能不够用。比如,我们需要在textView中点击某种链接,返回到应用中的某个界面,而不仅仅是网络连接,如何实现?

经过几个小时对android中的Html类源代码的研究,找到了解决办法,并且测试通过。

‘伍’ android如何保存html文件,包括其中的图片。

1、先示例图片

2、操作代码

package com.nekocode.xue.utils;

import java.io.File;

import java.io.FileOutputStream;

import java.util.ArrayList;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import com.androidquery.AQuery;

import com.androidquery.callback.AjaxCallback;

import com.androidquery.callback.AjaxStatus;

import com.nekocode.xue.PublicData;

import com.nekocode.xue.PublicData.Subscribe;

public class HtmlStorageHelper {

private String URL = "http://eproject.sinaapp.com/fetchurl.php/getcontent/";

private PublicData pd;

private AQuery aq;

private SQLiteDatabase mDB;

private String mDownloadPath;


public HtmlStorageHelper(Context context) {

pd = PublicData.getInstance();

aq = new AQuery(context);

mDB = context.openOrCreateDatabase("data.db", Context.MODE_PRIVATE, null);

mDB.execSQL("create table if not exists download_html(_id INTEGER PRIMARY KEY AUTOINCREMENT, content_id TEXT NOT NULL, title TEXT NOT NULL)");


mDownloadPath = pd.mAppPath + "download/";

File dir_file = new File(pd.mAppPath + "download/");

if(!dir_file.exists())

dir_file.mkdir();

}


public void saveHtml(final String id, final String title) {

if(isHtmlSaved(id))

return;


aq.ajax(URL+id, String.class, new AjaxCallback<String>() {

@Override

public void callback(String url, String html, AjaxStatus status) {

File dir_file = new File(mDownloadPath + id);

if(!dir_file.exists())

dir_file.mkdir();


Pattern pattern = Pattern.compile("(?<=src=")[^"]+(?=")");

Matcher matcher = pattern.matcher(html);

StringBuffer sb = new StringBuffer();

while(matcher.find()){

downloadPic(id, matcher.group(0));

matcher.appendReplacement(sb, formatPath(matcher.group(0)));

}

matcher.appendTail(sb);

html = sb.toString();


writeHtml(id, title, html);

}

});

}


private void downloadPic(String id, String url) {

File pic_file = new File(mDownloadPath + id + "/" + formatPath(url));

aq.download(url, pic_file, new AjaxCallback<File>() {

@Override

public void callback(String url, final File file, AjaxStatus status) {

}

});

}


private void writeHtml(String id, String title, String html) {

File html_file = new File(mDownloadPath + id + "/index.html");

FileOutputStream fos = null;

try {

fos=new FileOutputStream(html_file);

fos.write(html.getBytes());

} catch (Exception e) {

e.printStackTrace();

}finally{

try {

fos.close();

} catch (Exception e2) {

e2.printStackTrace();

}

}


ContentValues values = new ContentValues();

values.put("content_id", id);

values.put("title", title);

mDB.insert("download_html", "_id", values);

}


public boolean isHtmlSaved(String id) {

File file = new File(mDownloadPath + id);

if(file.exists()) {

file = new File(mDownloadPath + id + "/index.html");

if(file.exists())

return true;

}

deleteHtml(id);

return false;

}


public String getTitle(String id) {

Cursor c = mDB.rawQuery("select * from download_html where content_id=?", new String[]{id});

if(c.getCount() == 0)

return null;


c.moveToFirst();

int index1 = c.getColumnIndex("title");


return c.getString(index1);

}


public ArrayList<Subscribe> getHtmlList() {

Cursor c = mDB.rawQuery("select * from download_html", null);

ArrayList<Subscribe> list = new ArrayList<Subscribe>();

if(c.getCount() != 0) {

c.moveToFirst();

int index1 = c.getColumnIndex("content_id");

int index2 = c.getColumnIndex("title");


while (!c.isAfterLast()) {

String id = c.getString(index1);

if(isHtmlSaved(id)) {

Subscribe sub = new Subscribe(

id,

c.getString(index2),

Subscribe.FILE_DOWNLOADED

);

list.add(sub);

}


c.moveToNext();

}

}


return list;

}


public void deleteHtml(String id) {

mDB.delete("download_html", "content_id=?", new String[]{id});

File dir_file = new File(mDownloadPath + id);

deleteFile(dir_file);

}

private void deleteFile(File file) {

if (file.exists()) { // 判断文件是否存在

if (file.isFile()) { // 判断是否是文件

file.delete(); // delete()方法 你应该知道 是删除的意思;

} else if (file.isDirectory()) { // 否则如果它是一个目录

File files[] = file.listFiles(); // 声明目录下所有的文件 files[];

for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件

this.deleteFile(files[i]); // 把每个文件 用这个方法进行迭代

}

}

file.delete();

} else {

//

}

}


private String formatPath(String path) {

if (path != null && path.length() > 0) {

path = path.replace("\", "_");

path = path.replace("/", "_");

path = path.replace(":", "_");

path = path.replace("*", "_");

path = path.replace("?", "_");

path = path.replace(""", "_");

path = path.replace("<", "_");

path = path.replace("|", "_");

path = path.replace(">", "_");

}

return path;

}

}

3、这段代码简单修改就可以用到自己的项目中了

热点内容
钢筋笼加密区规范 发布:2025-05-17 10:59:50 浏览:2
我的世界网易手机版主播服务器房号 发布:2025-05-17 10:40:59 浏览:226
竖编译 发布:2025-05-17 09:56:08 浏览:227
编程画飞机 发布:2025-05-17 09:54:03 浏览:801
手机如何解锁密码屏幕锁怎么删除 发布:2025-05-17 09:52:04 浏览:123
网络无法访问网页 发布:2025-05-17 09:51:40 浏览:649
云存储box估值 发布:2025-05-17 09:47:11 浏览:511
关系数据库实时数据库 发布:2025-05-17 09:43:07 浏览:877
去培训编程 发布:2025-05-17 09:41:16 浏览:703
android控制屏幕关闭 发布:2025-05-17 09:32:23 浏览:150