Android 中SpannableStringBuilder控制區域性文字顏色和點選事件
直接上程式碼
結果package com.lhl.qsmm.maskguidetest; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.text.Spannable; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.TextPaint; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.text.style.ForegroundColorSpan; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = (TextView) findViewById(R.id.text); SpannableStringBuilder builder = new SpannableStringBuilder(); String s1 = "你好"; SpannableString sp1 = new SpannableString(s1); sp1.setSpan(new Clickable(new View.OnClickListener() { @Override public void onClick(View v) { //在這裡新增點選事件 } }),0,s1.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ForegroundColorSpan fcs1 = new ForegroundColorSpan(ContextCompat.getColor(this,R.color.borline)); sp1.setSpan(fcs1,0,s1.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//設定字型的顏色 builder.append(sp1);//新增 String s2 = "安卓"; SpannableString sp2 = new SpannableString(s2); sp2.setSpan(new Clickable(new View.OnClickListener() { @Override public void onClick(View v) { //在這裡新增點選事件 Toast.makeText(MainActivity.this, "點選", Toast.LENGTH_SHORT).show(); } }),0,s2.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ForegroundColorSpan fcs2 = new ForegroundColorSpan(ContextCompat.getColor(this,R.color.brightred)); sp1.setSpan(fcs2,0,s1.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//設定字型的顏色 builder.append(sp2); mTextView.setText(builder); mTextView.setMovementMethod(LinkMovementMethod.getInstance());//加上這句話才有效果 mTextView.setHighlightColor(ContextCompat.getColor(this,R.color.touming));//去掉點選後的背景顏色為透明 } class Clickable extends ClickableSpan implements View.OnClickListener { private final View.OnClickListener mListener; public Clickable(View.OnClickListener mListener) { this.mListener = mListener; } @Override public void onClick(View v) { mListener.onClick(v); } @Override public void updateDrawState(TextPaint ds) { ds.setColor(ds.linkColor); ds.setUnderlineText(false); //去除超連結的下劃線 } } }
相關推薦
Android 中SpannableStringBuilder控制區域性文字顏色和點選事件
直接上程式碼 package com.lhl.qsmm.maskguidetest; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.s
Android設定TextView中部分字型顏色和點選事件
最近接到一個新需求,在一個TextView中實現部分字型的顏色不同於其它字型,且點選該部分文字時實現跳轉的功能。一開始想著用多個TextView連起來實現功能,優化程式碼時再想想,這也太弱智了點兒吧! 果斷Google搜尋一下別的Coder是怎麼實現的,
Android中Fragment+Viewpager實現左右滑動和點選
一.佈局檔案 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.view.ViewPager android:id="@+id/viewpager" andr
Android 部分文字顏色大小點選事件的處理
Android開發中,經常會有這樣一個需求,在一段文字中,為突出顯示其中幾個文字,會採用不同的顏色,大小來顯示,並且有可能需要點選處理。先將自己平常用到的幾種方法總結如下。 1. 直接利用佈局實現 2. 利用富文字標籤實現 3. webview
Android用GridView畫帶背景色和點選事件的簡單表格
一:效果圖 六步即可完成GridView不同背景色,並且每個單元格可點選 GridView佈局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="h
textview設定多種不同的字型顏色和點選事件
最近專案需要用到textview為特定字元設定不同的顏色,如果用不同的控制元件拼起來的話一行也許沒有問題,但是如果換行的話效果就不理想了就像qq空間回覆品論的效果,暱稱和內容文字顏色不一樣,點選事件也不一樣。 目前我找到兩張方法,效果一樣。想用哪種看個人喜好
Android中ListView的item不能響應點選事件的原因
開發中很常見的一個問題,專案中的ListView不僅僅是簡單的文字,常常需要自己定義Listview。自己的Adapter去繼承BaseAdapter,在adapter中按照需求進行編寫,問題就出現了,可能會發生點選每一個item的時候沒有反應,無法獲取的焦點。原因
Android中的ListView響應item內部按鈕點選事件
ListView可以說是我們在實際開發中最常用到的控制元件了。可以說每一個app都需要用到listview來顯示列表,如果我們需要點選listView的不同按鈕跳轉到不同頁面,具體邏輯在重寫的onItemClick()方法中實現,這裡不多說,不瞭解listVie
Android中修改狀態列的顏色和我們App的風格一樣
就是自定義一個主題: <resources> <!-- Base application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- Customiz
android 在selector中同時設定button的圓角和點選效果,簡單顏色無需美工
1,如果我們沒有美工來設計我們的圓角圖片,可以採用shape的方式實現: <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.andr
關於android自定義字型顏色和點選改變字型顏色
先看效果圖 上面的為點選按下的效果圖 上面的為預設的(鬆開按鈕)的效果圖 首先我們先在values資料夾下新建一個color.xml檔案 這檔案就是配置我們要使用的顏色 程式碼如下 <?xml version="1.0" encoding
android之View座標系(view獲取自身座標的方法和點選事件中座標的獲取)
在做一個view背景特效的時候被座標的各個獲取方法搞暈了,幾篇抄來抄去的部落格也沒弄很清楚。 現在把整個總結一下。 其實只要把下面這張圖看明白就沒問題了。 涉及到的方法一共有下面幾個: view獲取自身座標:getLeft(),getTop(),getRigh
Android Radiobutton超級好用的自定義背景、文字顏色、點選效果
Android開發中一些認證、篩選的功能需要用到單選按鈕,首先想到的是RadioGroup巢狀RadioButton,但是自帶的樣式真是不堪入目啊,功能實現了,如何能最大化的提升使用者體驗呢?這是一個問題……廢話不多說,畢竟開發人員也不太善於表達,還是直接看圖說話吧:首先思路
Android-ListView中巢狀(ListView)控制元件時item的點選事件不起作用的問題
解決:1、在主listview佈局檔案中的listview中新增屬性 android:focusable="false" 2、在子listview中最頂上的佈局檔案新增屬性
Android-UI佈局---RecyclerView學習(一)在介面卡中自定義長按和點選事件
該系列文章 如果想全方面學習,建議參考這個大牛的文章,寫的真可以。 地址:http://blog.csdn.net/lmj623565791/article/details/45059587 因為RecyclerView沒有點選、長按事件,需要自己寫 實現的方式比較多,
Android中Recyclerview使用6----新增條目得到點選事件和長按事件(另一種寫法,較簡單)
效果圖 activity中: MainActivity <span style="font-size:18px;">public class MainActivity extends Activity { // private Recycler
Android開發:修改button的邊框和點選改變背景
本文內容 講解如何修改button的邊框,點選button改變背景顏色 開啟在res/values目錄下的color.xml檔案,新增程式碼: <!-- 綠色 --> <color name="green">#008000</color>
ButterKnife (奶油刀) 找控制元件id和點選事件的註解 簡單使用
首先 在app裡的build 最上面--------------------- apply plugin: ‘com.jakewharton.butterknife’ ----------------在app裡的build 加入依賴---------------------------
Android studio中關於Spinner下拉列表的點選事件
首先在values下的string.xml檔案中新增下拉列表的內容: <string-array name="province1"> <item>河北</item> <item>北京<
Android 神器之SpanableString實現textview部分字型點選事件(不同顏色),並且支援多個點選事件
1.老規矩,咱們先上效果圖: 2.如上圖 標紅的地方,我們一眼看上去 就是一個TextView上面展示出來的(沒錯就是一個TextView展示出來的),並且 部分字型顏色不一樣,而且這個三個協議是可以點選的,點選跳轉到不同頁面,怎麼實現尼 ?,這裡就涉及到一個