搜索
首页web前端html教程解析原生与html之间进行的一些关联

1.Android中设置部分字体的颜色改变,并且能点击

1, 使用SpannableStringBuilder来实现
//1,使用 SpannableStringBuilder , 参数中的数字表示修改的片段的起始位置和结束位置  
        TextView tv_1 = (TextView) findViewById(R.id.textView_1);  
        String str_1 = "使用 SpannableStringBuilder 来实现部分字体颜色的改变";  
        SpannableStringBuilder ssb = new SpannableStringBuilder(str_1);  
        ssb.setSpan(new ForegroundColorSpan(Color.RED), 0, 10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );  
        ssb.setSpan(new ForegroundColorSpan(Color.YELLOW), 12, 22,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );  
        ssb.setSpan(new ForegroundColorSpan(Color.GREEN), 23, str_1.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );  
        tv_1.setText(ssb);

2, 使用 html 来实现

//2,使用html来修改部分字体的颜色  
        TextView tv_2 = (TextView) findViewById(R.id.textView_2);  
        String str_2 = "使用 Html 来实现部分字体颜色的改变";  
        tv_2.setText(Html.fromHtml("使用 Html <font color = blue> 来实现部分字体颜色的改变</font>"));
html = "<html><body>"
                    + "<p><font color=\"#FFBF00\"> ② </p>"
                    + "<p><font color=\"#CE00F7\">城郊 "
                    + "</p>"
                    + "</body></html>";
_Holder.station_change.setText(Html.fromHtml(html));
3 , 使用SpannableStringBuilder来实现,或者 SpannableString来实现部分字体的颜色的改变,并且能点击,这里用到了ClickableSpan
        //3,实现部分字体颜色的改变,并能点击  
        TextView tv_3 = (TextView) findViewById(R.id.textView_3);  
        String str_3 = "实现部分字体颜";  
        String str_4 = "色的改变并且能点击";  
        //这里无论是使用  SpannableString 还是  SpannableStringBuilder 都一样  
        SpannableString ss = new SpannableString(str_4);  
//        SpannableStringBuilder s = new SpannableStringBuilder(str_4);  
        MyClickableSpan clickSpan = new MyClickableSpan(this, str_4);  
        ss.setSpan(clickSpan, 0, str_4.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        tv_3.setText(str_3);  
        tv_3.append(ss);  
        //必须加这一句,否则就无法被点击  
        tv_3.setMovementMethod(LinkMovementMethod.getInstance());
  /** 
   * 这个类 实际上和第一种改变颜色的方法差不多,只不过 那是个专门改变颜色的Span,这是个专门负责点击处理的Span 
   * @author Administrator 
   */  
  class MyClickableSpan extends ClickableSpan{  
    private Context context;  
    private String text;  

    public MyClickableSpan(Context context,String text)  
    {  
        this.context = context;  
        this.text = text;  
    }  

//在这里设置字体的大小,等待各种属性  public void updateDrawState(TextPaint ds) {  
    ds.setColor(Color.RED);  
    }  

@Override  public void onClick(View widget) {  
    Intent intent = new Intent(MainActivity.this,OtherActivity.class);  
    startActivity(intent);  
}  
}

2.Android原生代码与HTML5的交互

1.原生代码调用HTML5页面方法

例如,app要调用HTML5页面的changeColor(color)的方法,来改变HTML5页面的颜色

1)HTML5

 <script type="text/javascript">   
  document.write("Hello World!")  
  function changeColor(color){  document.body.style.background = color;    } </script>

2)Android

  //开启JavaScript支持   
  wvMain.getSettings().setJavaScriptEnabled(true);  
  //放在assets的html需加上android_asset/ ;也可以用网络上的文件
  wvMain.loadUrl("file:///android_asset/show.html");    
  // 添加一个对象, 让JS可以访问该对象的方法, 该对象中可以调用JS中的方法
  wvMain.addJavascriptInterface(new JSInterface1(),"baobao"); 
  btnOne.setOnClickListener(new View.OnClickListener() {  
  @Override    
   public void onClick(View v) {       
   String color = "#cccccc";   wvMain.loadUrl("javascript: changeColor(&#39;"+color+"&#39;)");    }});

2.HTLM5页面调用原生方法
例如,点击HTML5页面的文字,回调原生代码中的callAndroidMethod方法

1)HTML5

 <a onClick="baobao.callAndroidMethod(100,100,&#39;ccc&#39;,true)">CallAndroidMethod</a>

2 )android

   class JSInterface1 {    

    //JavaScript调用此方法
   @JavascriptInterface     

   public void callAndroidMethod(int a,float b, String c,boolean d){    if(d){           
        String strMessage = "a+b+c="+a+b+c;       
      new AlertDialog.Builder(MainActivity.this).setTitle("title").setMessage(strMessage).show();        
         }  
     }
  }

1.Android中设置部分字体的颜色改变,并且能点击

1, 使用SpannableStringBuilder来实现
//1,使用 SpannableStringBuilder , 参数中的数字表示修改的片段的起始位置和结束位置  
        TextView tv_1 = (TextView) findViewById(R.id.textView_1);  
        String str_1 = "使用 SpannableStringBuilder 来实现部分字体颜色的改变";  
        SpannableStringBuilder ssb = new SpannableStringBuilder(str_1);  
        ssb.setSpan(new ForegroundColorSpan(Color.RED), 0, 10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );  
        ssb.setSpan(new ForegroundColorSpan(Color.YELLOW), 12, 22,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );  
        ssb.setSpan(new ForegroundColorSpan(Color.GREEN), 23, str_1.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );  
        tv_1.setText(ssb);

2, 使用 html 来实现

//2,使用html来修改部分字体的颜色  
        TextView tv_2 = (TextView) findViewById(R.id.textView_2);  
        String str_2 = "使用 Html 来实现部分字体颜色的改变";  
        tv_2.setText(Html.fromHtml("使用 Html <font color = blue> 来实现部分字体颜色的改变</font>"));
或者
html = "<html><body>"
                    + "<p><font color=\"#FFBF00\"> ② </p>"
                    + "<p><font color=\"#CE00F7\">城郊 "
                    + "</p>"
                    + "</body></html>";
_Holder.station_change.setText(Html.fromHtml(html));
3 , 使用SpannableStringBuilder来实现,或者 SpannableString来实现部分字体的颜色的改变,并且能点击,这里用到了ClickableSpan
        //3,实现部分字体颜色的改变,并能点击  
        TextView tv_3 = (TextView) findViewById(R.id.textView_3);  
        String str_3 = "实现部分字体颜";  
        String str_4 = "色的改变并且能点击";  
        //这里无论是使用  SpannableString 还是  SpannableStringBuilder 都一样  
        SpannableString ss = new SpannableString(str_4);  
//        SpannableStringBuilder s = new SpannableStringBuilder(str_4);  
        MyClickableSpan clickSpan = new MyClickableSpan(this, str_4);  
        ss.setSpan(clickSpan, 0, str_4.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        tv_3.setText(str_3);  
        tv_3.append(ss);  
        //必须加这一句,否则就无法被点击  
        tv_3.setMovementMethod(LinkMovementMethod.getInstance());
  /** 
   * 这个类 实际上和第一种改变颜色的方法差不多,只不过 那是个专门改变颜色的Span,这是个专门负责点击处理的Span 
   * @author Administrator 
   */  
  class MyClickableSpan extends ClickableSpan{  
    private Context context;  
    private String text;  

    public MyClickableSpan(Context context,String text)  
    {  
        this.context = context;  
        this.text = text;  
    }  

//在这里设置字体的大小,等待各种属性  public void updateDrawState(TextPaint ds) {  
    ds.setColor(Color.RED);  
    }  

@Override  public void onClick(View widget) {  
    Intent intent = new Intent(MainActivity.this,OtherActivity.class);  
    startActivity(intent);  
}  
}

2.Android原生代码与HTML5的交互

1.原生代码调用HTML5页面方法

例如,app要调用HTML5页面的changeColor(color)的方法,来改变HTML5页面的颜色

1)HTML5

 <script type="text/javascript">   
  document.write("Hello World!")  
  function changeColor(color){  document.body.style.background = color;    } </script>

2)Android

  //开启JavaScript支持   
  wvMain.getSettings().setJavaScriptEnabled(true);  
  //放在assets的html需加上android_asset/ ;也可以用网络上的文件
  wvMain.loadUrl("file:///android_asset/show.html");    
  // 添加一个对象, 让JS可以访问该对象的方法, 该对象中可以调用JS中的方法
  wvMain.addJavascriptInterface(new JSInterface1(),"baobao"); 
  btnOne.setOnClickListener(new View.OnClickListener() {  
  @Override    
   public void onClick(View v) {       
   String color = "#cccccc";   wvMain.loadUrl("javascript: changeColor(&#39;"+color+"&#39;)");    }});

2.HTLM5页面调用原生方法
例如,点击HTML5页面的文字,回调原生代码中的callAndroidMethod方法

1)HTML5

 <a onClick="baobao.callAndroidMethod(100,100,&#39;ccc&#39;,true)">CallAndroidMethod</a>

2 )android

   class JSInterface1 {    

    //JavaScript调用此方法
   @JavascriptInterface     

   public void callAndroidMethod(int a,float b, String c,boolean d){    if(d){           
        String strMessage = "a+b+c="+a+b+c;       
      new AlertDialog.Builder(MainActivity.this).setTitle("title").setMessage(strMessage).show();        
         }  
     }
  }

以上是解析原生与html之间进行的一些关联的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
HTML的多功能性:应用和用例HTML的多功能性:应用和用例Apr 30, 2025 am 12:03 AM

HTML不仅是网页的骨架,更广泛应用于多种领域:1.在网页开发中,HTML定义页面结构并结合CSS和JavaScript实现丰富界面。2.在移动应用开发中,HTML5支持离线存储和地理定位等功能。3.在电子邮件和新闻通讯中,HTML提升邮件的格式和多媒体效果。4.在游戏开发中,HTML5的CanvasAPI用于创建2D和3D游戏。

HTML文档中的根标签是什么?HTML文档中的根标签是什么?Apr 29, 2025 am 12:10 AM

theroottaginanhtmldocumentis.servesasthetop-levellementThateNcapsulatesAllotherContent,确保properdocumentstrumentstrumentsureandbrowserparserparsing。

HTML标签和元素是同一件事吗?HTML标签和元素是同一件事吗?Apr 28, 2025 pm 05:44 PM

文章解释说,HTML标签是用于定义元素的语法标记,而元素是完整的单位,包括标签和内容。他们一起工作以构建网页。查拉克计数:159

&lt; head&gt;的意义是什么。 &&lt;身体&gt;在html中标记?&lt; head&gt;的意义是什么。 &&lt;身体&gt;在html中标记?Apr 28, 2025 pm 05:43 PM

本文讨论了Lt; Head&gt; &&lt;身体&gt; HTML中的标签,它们对用户体验的影响以及SEO的影响。正确的结构增强了网站功能和搜索引擎优化。

&lt; strong&gt;,lt; b&gt;有什么区别标签和lt; em&gt;,&lt; i&gt;标签?&lt; strong&gt;,lt; b&gt;有什么区别标签和lt; em&gt;,&lt; i&gt;标签?Apr 28, 2025 pm 05:42 PM

本文讨论了HTML标签,和和关注其语义与表现用途及其对SEO和可访问性的影响之间的差异。

请说明如何指示HTML中文档使用的字符集?请说明如何指示HTML中文档使用的字符集?Apr 28, 2025 pm 05:41 PM

文章讨论了在HTML中指定字符,重点介绍了UTF-8。主要问题:确保正确显示文本,防止乱七八糟的字符,并增强SEO和可访问性。

HTML中的各种格式标签是什么?HTML中的各种格式标签是什么?Apr 28, 2025 pm 05:39 PM

本文讨论了用于构建和造型Web内容的各种HTML格式标签,强调了它们对文本外观的影响以及语义标签对可访问性和SEO的重要性。

HTML元素的' ID”属性与'类”属性之间有什么区别?HTML元素的' ID”属性与'类”属性之间有什么区别?Apr 28, 2025 pm 05:39 PM

本文讨论了HTML的“ ID”和“类”属性之间的差异,重点是它们的独特性,目的,CSS语法和特异性。它解释了它们的使用如何影响网页样式和功能,并为

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。