原生与html,解析原生与html之间进行的一些关联
1.Android中設(shè)置部分字體的顏色改變,并且能點(diǎn)擊
1, 使用SpannableStringBuilder來實(shí)現(xiàn)//1,使用 SpannableStringBuilder , 參數(shù)中的數(shù)字表示修改的片段的起始位置和結(jié)束位置
TextView tv_1 = (TextView) findViewById(R.id.textView_1);
String str_1 = "使用 SpannableStringBuilder 來實(shí)現(xiàn)部分字體顏色的改變";
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 來實(shí)現(xiàn)//2,使用html來修改部分字體的顏色
TextView tv_2 = (TextView) findViewById(R.id.textView_2);
String str_2 = "使用 Html 來實(shí)現(xiàn)部分字體顏色的改變";
tv_2.setText(Html.fromHtml("使用 Html 來實(shí)現(xiàn)部分字體顏色的改變"));html = "
"+ "
②
"+ "
城郊 "
+ "
"+ "";
_Holder.station_change.setText(Html.fromHtml(html));
3 , 使用SpannableStringBuilder來實(shí)現(xiàn),或者 SpannableString來實(shí)現(xiàn)部分字體的顏色的改變,并且能點(diǎn)擊,這里用到了ClickableSpan//3,實(shí)現(xiàn)部分字體顏色的改變,并能點(diǎn)擊
TextView tv_3 = (TextView) findViewById(R.id.textView_3);
String str_3 = "實(shí)現(xiàn)部分字體顏";
String str_4 = "色的改變并且能點(diǎn)擊";
//這里無論是使用 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);
//必須加這一句,否則就無法被點(diǎn)擊
tv_3.setMovementMethod(LinkMovementMethod.getInstance());/**
* 這個類 實(shí)際上和第一種改變顏色的方法差不多,只不過 那是個專門改變顏色的Span,這是個專門負(fù)責(zé)點(diǎn)擊處理的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;
}
//在這里設(shè)置字體的大小,等待各種屬性 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.原生代碼調(diào)用HTML5頁面方法
例如,app要調(diào)用HTML5頁面的changeColor(color)的方法,來改變HTML5頁面的顏色
1)HTML5
document.write("Hello World!")
function changeColor(color){ document.body.style.background = color; }
2)Android//開啟JavaScript支持
wvMain.getSettings().setJavaScriptEnabled(true);
//放在assets的html需加上android_asset/ ;也可以用網(wǎng)絡(luò)上的文件
wvMain.loadUrl("file:///android_asset/show.html");
// 添加一個對象, 讓JS可以訪問該對象的方法, 該對象中可以調(diào)用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頁面調(diào)用原生方法
例如,點(diǎn)擊HTML5頁面的文字,回調(diào)原生代碼中的callAndroidMethod方法
1)HTML5CallAndroidMethod
2 )androidclass JSInterface1 {
//JavaScript調(diào)用此方法
@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中設(shè)置部分字體的顏色改變,并且能點(diǎn)擊
1, 使用SpannableStringBuilder來實(shí)現(xiàn)//1,使用 SpannableStringBuilder , 參數(shù)中的數(shù)字表示修改的片段的起始位置和結(jié)束位置
TextView tv_1 = (TextView) findViewById(R.id.textView_1);
String str_1 = "使用 SpannableStringBuilder 來實(shí)現(xiàn)部分字體顏色的改變";
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 來實(shí)現(xiàn)//2,使用html來修改部分字體的顏色
TextView tv_2 = (TextView) findViewById(R.id.textView_2);
String str_2 = "使用 Html 來實(shí)現(xiàn)部分字體顏色的改變";
tv_2.setText(Html.fromHtml("使用 Html 來實(shí)現(xiàn)部分字體顏色的改變"));或者
html = "
"+ "
②
"+ "
城郊 "
+ "
"+ "";
_Holder.station_change.setText(Html.fromHtml(html));
3 , 使用SpannableStringBuilder來實(shí)現(xiàn),或者 SpannableString來實(shí)現(xiàn)部分字體的顏色的改變,并且能點(diǎn)擊,這里用到了ClickableSpan//3,實(shí)現(xiàn)部分字體顏色的改變,并能點(diǎn)擊
TextView tv_3 = (TextView) findViewById(R.id.textView_3);
String str_3 = "實(shí)現(xiàn)部分字體顏";
String str_4 = "色的改變并且能點(diǎn)擊";
//這里無論是使用 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);
//必須加這一句,否則就無法被點(diǎn)擊
tv_3.setMovementMethod(LinkMovementMethod.getInstance());/**
* 這個類 實(shí)際上和第一種改變顏色的方法差不多,只不過 那是個專門改變顏色的Span,這是個專門負(fù)責(zé)點(diǎn)擊處理的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;
}
//在這里設(shè)置字體的大小,等待各種屬性 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.原生代碼調(diào)用HTML5頁面方法
例如,app要調(diào)用HTML5頁面的changeColor(color)的方法,來改變HTML5頁面的顏色
1)HTML5
document.write("Hello World!")
function changeColor(color){ document.body.style.background = color; }
2)Android//開啟JavaScript支持
wvMain.getSettings().setJavaScriptEnabled(true);
//放在assets的html需加上android_asset/ ;也可以用網(wǎng)絡(luò)上的文件
wvMain.loadUrl("file:///android_asset/show.html");
// 添加一個對象, 讓JS可以訪問該對象的方法, 該對象中可以調(diào)用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頁面調(diào)用原生方法
例如,點(diǎn)擊HTML5頁面的文字,回調(diào)原生代碼中的callAndroidMethod方法
1)HTML5CallAndroidMethod
2 )androidclass JSInterface1 {
//JavaScript調(diào)用此方法
@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();
}
}
}
總結(jié)
以上是生活随笔為你收集整理的原生与html,解析原生与html之间进行的一些关联的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5+css3网页设计与网站布局从
- 下一篇: 河北省往届高考成绩查询2021,2021