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('"+color+"')"); }});
2.HTLM5頁面呼叫原生方法
例如,點選HTML5頁面的文字,回呼原生程式碼中的callAndroidMethod方法
1)HTML5
<a onClick="baobao.callAndroidMethod(100,100,'ccc',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('"+color+"')"); }});
2.HTLM5頁面呼叫原生方法
例如,點選HTML5頁面的文字,回呼原生程式碼中的callAndroidMethod方法
1)HTML5
<a onClick="baobao.callAndroidMethod(100,100,'ccc',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中文網其他相關文章!

在Bootstrap4中實現多項目輪播的解決方案在Bootstrap4中實現多項目輪播並不是一件簡單的事情。雖然Bootstrap...

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...

無法直接通過CSS修改HTML視頻的默認播放控件樣式。 1.使用JavaScript創建自定義控件。 2.通過CSS美化這些控件。 3.考慮兼容性、用戶體驗和性能,使用庫如Video.js或Plyr可簡化過程。

在手機上使用原生select的潛在問題在開發移動端應用時,我們常常會遇到選擇框的需求。通常情況下,開發者傾...

在手機上使用原生select的弊端是什麼?在移動設備上開發應用時,選擇合適的UI組件是非常重要的。許多開發者�...

使用Three.js和Octree優化房間內第三人稱漫遊的碰撞處理在Three.js中使用Octree實現房間內的第三人稱漫遊並添加碰�...

使用原生select在手機上的問題在移動設備上開發應用時,我們經常會遇到需要用戶進行選擇的場景。雖然原生sel...

探究鼠標滾動事件的實現原理在瀏覽一些網站時,你可能注意到某些頁面元素在鼠標懸停時仍然允許滾動整個頁...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

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

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具