现在我有一个需求是显示:“简单点说话的方式简单点”这句话,要求“说话的”三个字为红色,字号比其他的字大,并且可以点击。下面分别采用以上四种方式实现。
首先看下效果图:
xml代码:
"match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="简单点" />
id="@+id/tv_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="说话的"
android:textColor="@android:color/holo_red_light" />
id="@+id/tv_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="方式简单点" />
MainActivity代码:
findViewById(R.id.tv_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "说话的", Toast.LENGTH_SHORT).show();
}
});
注意:
xml代码:
<TextView
android:id="@+id/tv_html"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:gravity="center_horizontal" />
MainActivity代码:
TextView tv_html = (TextView) findViewById(R.id.tv_html);
String s = "简单点" + "" + "说话的" + "" + "方式简单点";
tv_html.setText(Html.fromHtml(s));
注意:
1. size用不了。
2. 不支持 style 样式设置。
xml代码:
<WebView
android:id="@+id/wv"
android:layout_width="wrap_content"
android:layout_marginTop="15dp"
android:layout_gravity="center"
android:layout_height="wrap_content">WebView>
MainActivity代码:
WebView webView = (WebView) findViewById(R.id.wv);
webView.loadUrl("file:///android_asset/redFont.html");
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new ClickMethod(), "Zyc");
redFont.html:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档title>
head>
<body>
<p align="center">简单点<span onclick="zyc()"><font color="#FF0000">说话的font>span>方式简单点p>
body>
<script type="text/javascript">
function zyc(){
Zyc.show("说话的");
}
script>
html>
注意:
1.这种方式是比较强大的,利用HTML CSS JS等可以实现你所想要几乎所有的效果。
xml代码:
<TextView
android:id="@+id/tv_yanyuan"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:gravity="center_horizontal" />
MainActivity代码:
final String geci = getResources().getString(R.string.yanyuan);
SpannableString ss = new SpannableString(geci);
ss.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this, geci.substring(geci.length() - 6 - 3, geci.length() - 6), Toast.LENGTH_SHORT).show();
}
}, geci.length() - 6 - 3, geci.length() - 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_yanyuan.setText(ss);
tv_yanyuan.setMovementMethod(LinkMovementMethod
.getInstance());
注意:
OK,就到这了~