目錄
1, 使用SpannableStringBuilder來實作
3 , 使用SpannableStringBuilder來實現,或者SpannableString來實現部分字體的顏色的改變,並且能點擊,這裡用到了ClickableSpan
2.Android原生代碼與HTML5的交互
1.原生程式碼呼叫HTML5頁面方法
1.Android中設定部分字體的顏色改變,並且能點擊
2.Android原生程式碼與HTML5的互動
首頁 web前端 html教學 解析原生與html之間進行的一些關聯

解析原生與html之間進行的一些關聯

Apr 27, 2017 am 11:55 AM

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

熱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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

See all articles