android怎么加载html

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android怎么加载html相关的知识,希望对你有一定的参考价值。

android加载html 

主要有2种方案:

方案一:

启动第三方浏览器或者安卓内置的浏览器进行加载先生html文件。

方案二:

使用android 自带的webview控件进行加载html文件或者网页。


不常用方案有1种:

使用android控件TextView进行加载html文件。


主要原理:

通过读取html文件里面的标签进行解析相关的元素从而通过浏览器,或者android自带的控件进行显示,其中webview控件本质上就是一个浏览器,TextView显示html内容就是通过解析标签,元素通过内置方法转化成相应带有属性的文本信息然后显示到界面上。

详细解决步奏:

方案一:

Uri uri = Uri.parse("http://www.XXXX.com"); //要链接的地址或者html
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

缺点如果android中没有浏览器,则无法启动显示相关内容。


方案二:

webview = (WebView) findViewById(R.id.WebView01);
webview.getSettings().setjavascriptEnabled(true);
webview.loadUrl("http://www.xxxx.com");//要链接的地址或者html

缺点:目前没有什么缺点,比其他2种好,天生为加载html文件而出生的


方案三:

不常用的方法,借助函数 Html.fromHtml()来解析html内容,并且进行显示。

TextView text1 = (TextView)findViewById(R.id.TextView02);
text1.setText(Html.fromHtml(“<font size='20'>网页内容html</font>”));

缺点:加载速度慢于webview加载速度。


最后

推荐使用webview进行加载html内容,其特性优于其他2种加载方式

参考技术A html页面(命名:Android.html放在assets文件夹下):::::
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript" type="text/javascript">
function get4Android(str)
document.getElementById("show").innerHTML="This is a message from android:"+str;

</script>
</head>
<body>
<div id="show"></div>
</body>
</html>

Text.java代码:::
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Text extends Activity implements OnClickListener

private Button button;
private TextView text;
private WebView web;
private EditText edit;
private Handler handler;

private void initView()
button = (Button) this.findViewById(R.id.button2);
web = (WebView) this.findViewById(R.id.webView1);
edit = (EditText) this.findViewById(R.id.editText1);
button.setOnClickListener(this);


private void setWebView()
web.setWebViewClient(new WebViewClient());
web.requestFocus();
WebSettings setting = web.getSettings();
setting.setJavaScriptEnabled(true);
web.setOnTouchListener(new OnTouchListener()

@Override
public boolean onTouch(View v, MotionEvent event)
web.requestFocus();
return false;

);
web.addJavascriptInterface(new SendAndroid(), "theKey");
web.loadUrl("file:///android_asset/android.html");


@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
setWebView();

handler = new Handler()
public void handleMessage(android.os.Message msg)
String str = msg.obj.toString();
text.setText(str);
;
;


@Override
public void onClick(View v)
Editable editable = edit.getText();
web.loadUrl("javascript:get4Android(\"" + editable.toString()
+ "\")");


class SendAndroid
public void runOnAndroidJavaScript(final String str)
new Thread(new Runnable()
@Override
public void run()
System.out.println("******" + str);
Message mes = handler.obtainMessage();
mes.obj = str;
handler.sendMessage(mes);

).start();





主要是:web.loadUrl("javascript:get4Android(\"" + editable.toString()+ "\")");中的“javascript:get4Android”要和html中的【function get4Android(str)
document.getElementById("show").innerHTML="This is a message from android:"+str;
】方法名相同本回答被提问者采纳
参考技术B   android加载html的方法:
  1.跳转到浏览器直接访问页面,这段代码是在Activity中拷贝来的,所以有startActivity()方法
  Uri uri = Uri.parse("http://www.XXXX.com"); //要链接的地址
  Intent intent = new Intent(Intent.ACTION_VIEW, uri);
  startActivity(intent);
  2.使用TextView显示HTML方法
  TextView text1 = (TextView)findViewById(R.id.TextView02);
  text1.setText(Html.fromHtml(“<font size='20'>网页内容</font>”));
  3.直接使用Android中自带的显示网页组件WebView
  webview = (WebView) findViewById(R.id.WebView01);
  webview.getSettings().setJavaScriptEnabled(true);
  webview.loadUrl("http://www.xxxx.com");
  
参考技术C 一、如果手机自带有html viewer之类的软件,则直接找到html文件,点击即 可。如果此时要你选择用什么软件打开,就选择html viewer。
二、如果手机没有自带html viewer,现在的浏览器一般有文件管理功能。在 浏览器的文件管理(有的文件管理在下载里)里找到html并打开即可。
三、如果以上方法都不行,而且觉得麻烦,或是想在手机上编辑html,可以下 载个html编辑器。如:QuickEdit。

android Loading 加载之后怎么跳转到主页面,代码如下,在线等,求大神

// 图片数量
private int count =8;
//图片ID的数组
private int[] ids=R.drawable.r1,R.drawable.r2,R.drawable.r3,R.drawable.r4,
R.drawable.r5,R.drawable.r6,R.drawable.r7,R.drawable.r8;

private Handler handler;
private ImageView img_loading;
public void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);
setContentView(R.layout.loading);
img_loading = (ImageView) this.findViewById(R.id.img_loading);
handler = new Handler()
public void handleMessage(Message msg)

/**
* 更改ImageView的图片
*/
img_loading.setImageDrawable(getDrawable(msg.what));

;
play();



/**
* 获取到图片对象
* @param id
* @return
*/
private Drawable getDrawable(int id)

return this.getResources().getDrawable(ids[id]);


/**
* 播放动画
*/
private void play()


new Thread()

@SuppressWarnings("static-access")
@Override
public void run()


while(true)

for (int i = 0; i < count; i++)

handler.sendEmptyMessage(i);
try

this.sleep(100);
catch (InterruptedException e)

e.printStackTrace();




.start();

首先,handle中增加一个跳转主页面的代码
public void handleMessage(Message msg)

//增加的代码 begin
if(msg.what == count)
startActivity(nowActivity.this, mainActivity.class);
return;

//增加的代码 end

/**
* 更改ImageView的图片
*/
img_loading.setImageDrawable(getDrawable(msg.what));



然后,play()的for循环中,改一下。
for (int i = 0; i < count+1; i++)

就行了追问

loading 之后就进入主界面了,但是主界面闪了一下就没了

参考技术A 另外开个线程 沉睡你这个一段时间 然后Inten intent=new Intent();intent.setclass("加载页面","主页面");startactivity(intent);追问

能具体一点吗?

以上是关于android怎么加载html的主要内容,如果未能解决你的问题,请参考以下文章

Android权限大全(链接地址整理)

Android Sip使用及坑

75.Android之基本架构

解决android 启动白屏问题

Android如何降低service被杀死概率

Android按键添加和处理的方案