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 来实现部分字体颜色的改变"));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
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
CallAndroidMethod
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 来实现
本文档主要讲述的是使用JSON进行网络数据交换传输;JSON(JavaScript ObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,非常适合于服务器与客户端的交互。JSON采用与编程语言无关的文本格式,但是也使用了类C语言的习惯,这些特性使JSON成为理想的数据交换格式。 和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON的数据格式非常简单,您可以用 JSON 传输一个简单的 St
//2,使用html来修改部分字体的颜色
TextView tv_2 = (TextView) findViewById(R.id.textView_2);
String str_2 = "使用 Html 来实现部分字体颜色的改变";
tv_2.setText(Html.fromHtml("使用 Html 来实现部分字体颜色的改变"));或者
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
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
CallAndroidMethod
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();
}
}
}










