[Android開發]自定義View之TextView區域性操作View-SpanTextView
阿新 • • 發佈:2019-01-22
一、功能效果圖
Android TextView的區域性操作Span封裝View,支援縮略顯示、區域性點選、區域性格式設定、圖片插入替換等等
二、簡單使用
TextView需要區域性操作:點選某些區域性文字的事件、顏色、大小、下劃線、指定位置插入圖片、新增圖片等等,如果沒經過封裝,你需要在activty上寫一堆的view操作程式碼。
簡單封裝一下之後,我在TextView要設定第3-5的字母點選事件 和 “連結1”字元點選事件,程式碼只需要如下
//設定點選事件
tvTest.setSpanLink("連結1",SIGN_ONE,false,Color.GREEN);
tvTest.setSpanLink("連結2" ,SIGN_TWO,false);
tvTest.setSpanLink("連結3",SIGN_THREE);
//點選事件回撥監聽
tvTest.setOnLinkClickListener(new SpanTextView.onLinkClickListener() {
@Override
public void onLinkClick(View view, String text, String sign) {
String toast = "";
switch (sign){
case SIGN_ONE:
toast = "連結1";
break;
case SIGN_TWO:
toast = "連結2";
break;
case SIGN_THREE:
toast = "連結3";
break ;
}
Toast.makeText(MainActivity.this,"點選了"+toast,Toast.LENGTH_SHORT).show();
Log.e(TAG, "點選了"+toast);
}
});
又例如替換圖片,插入圖片,程式碼只需要如下:
//新增圖片到最前面,文字的高度
tvTest.addImageToFirst(R.drawable.one, SpanTextView.TEXT_SIZE);
//新增圖片到中間(中間新增的後面)
tvTest.setImage(R.drawable.two, "中間新增", SpanTextView.AFTER_IMAGE);
//新增圖片到最後面
tvTest.addImageToLast(R.drawable.four);
//替換文字為圖片
//tvTest.setImage(R.drawable.three,"圖片標識", SpanTextView.REPLACE_IMAGE);
tvTest.replaceTextToImage("圖片標識",R.drawable.three);
又例如其他操作 背景、顏色、下劃線等等:
//設定文字大小
tvTest.setSpanTextSize("大小",30);
//設定文字背景
tvTest.setSpanTextBack("普通背景", Color.BLUE);
//設定文字圓角背景
tvTest.setSpanTextBack("圓角背景", Color.GREEN,10);
//設定文字顏色
tvTest.setSpanTextColor("顏色",Color.RED);
//設定文字下劃線
tvTest.setUnderLine("下劃線",true);
又例如設定省略文字:
//設定省略文字,只顯示100個
tvTestTwo.setOmit(100);
還有其他的功能,具體請檢視原始碼方法
三、思路
思路比較簡單,就是把所有的span操作都放在了父View,向外公開一個個簡單的方法去使用。
圖片支援插入、替換、居中、可設定寬高。
封裝了一些常用的,如果你需要的功能封裝裡面沒有,你可以使用下面的程式碼進行設定Span
//設定其他的Span
//自定義設定Span
tvTest.setSpann(tvTest.createSpan(tvTest.getText(), new TypefaceSpan("sans-serif"), 1, 5));