付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】Android中怎么通過自定義TextView實現(xiàn)滑動解鎖高亮文字
本篇文章為大家展示了Android中怎么通過自定義TextView實現(xiàn)滑動解鎖高亮文字,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。具體代碼如下所示:public
class
HightLightTextView
extends
TextView
{
//
存儲view的寬度
private
int
mTextViewWidth
=
0;
//
畫筆
private
Paint
mPaint;
//
線性渲染
private
LinearGradient
mLinearGradient;
//
存儲變換的matrix
private
Matrix
matrix;
//
移動距離
private
int
mTranslateX
=
0;
//
構(gòu)造方法
public
HightLightTextView(Context
context)
{
this(context,
null);
}
public
HightLightTextView(Context
context,
AttributeSet
attrs)
{
this(context,
attrs,
0);
}
public
HightLightTextView(Context
context,
AttributeSet
attrs,
int
defStyle)
{
super(context,
attrs,
defStyle);
}
/**
*
view的調(diào)用過程:構(gòu)造方法->onFinishInflate->onSizeChanged->onDraw
*/
@Override
protected
void
onSizeChanged(int
w,
int
h,
int
oldw,
int
oldh)
{
super.onSizeChanged(w,
h,
oldw,
oldh);
//
獲取view的寬度,初始化畫筆等初始屬性
if
(mTextViewWidth
==
0)
{
mTextViewWidth
=
getMeasuredWidth();
//
如果寬度大于0的話,則初始化
if
(mTextViewWidth
>
0)
{
//
初始化畫筆
mPaint
=
getPaint();
//
線性渲染
mLinearGradient
=
new
LinearGradient(0,
getMeasuredHeight(),
mTextViewWidth,
0,
new
int[]{0X55FFFFFF,
0XFFFFFFFF,
0X55FFFFFF},
new
float[]{0,
0.5f,
1},
Shader.TileMode.CLAMP);
mPaint.setShader(mLinearGradient);
matrix
=
new
Matrix();
}
}
}
@Override
protected
void
onDraw(Canvas
canvas)
{
super.onDraw(canvas);
if
(matrix
!=
null)
{
mTranslateX
+=
mTextViewWidth
/
10;
//
如果移動的距離大于兩倍的寬度,則重新開始移動
if
(mTranslateX
>
2
*
mTextViewWidth)
{
mTranslateX
=
-mTextViewWidth;
}
//
平移matrix
matrix.setTranslate(mTranslateX,
0);
//
設(shè)置線性變化的matrix
mLinearGradient.setLocalMatrix(matrix);
//
延遲50ms重繪
(重繪時會重新調(diào)用onDraw)
postInvalidateDelayed(50);
}
}
}補充:AndroidTextView指定關(guān)鍵字高亮顯示項目中有這個需求,網(wǎng)上搜了一把,方法挺多的,這里選擇一個簡單的,已驗證可用的方法,記錄下,方便以后查閱。TextView
tv
=
(TextView)
findViewById(R.id.hello);
SpannableString
s
=
new
SpannableString(getResources().getString(R.string.linkify));
Pattern
p
=
Ppile("abc");
Matcher
m
=
p.matcher(s);
while
(m.find())
{
int
start
=
m.start();
int
end
=
m.e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動駕駛技術(shù)介紹
- 2026年長治幼兒師范高等??茖W校單招職業(yè)傾向性測試模擬測試卷附答案
- 2026年青島工程職業(yè)學院單招綜合素質(zhì)考試模擬測試卷附答案
- 2026年黑龍江省牡丹江市單招職業(yè)適應(yīng)性考試題庫及答案1套
- 2026年會展活動策劃展位設(shè)計產(chǎn)品展示調(diào)研
- 2026年跨國企業(yè)人力資源管理者專業(yè)試題
- 2026年金融科技工程師面試筆試題
- 2026年數(shù)字營銷戰(zhàn)略策劃高級測試題
- 2026年日照水利單招測試題附答案
- 2026年心理學基礎(chǔ)理論與應(yīng)用模擬題
- 經(jīng)典名著《紅樓夢》閱讀任務(wù)單
- 古田會議學習課件
- 高寒地區(qū)建筑工程冬季施工技術(shù)規(guī)范研究
- 電流保護原理課件
- DBJT15-212-2021 智慧排水建設(shè)技術(shù)規(guī)范
- 民俗學課件萬建中
- 能源與動力工程專業(yè)培養(yǎng)目標合理性評價分析報告
- 公司員工活動室管理制度
- 2025年水晶手鏈市場需求分析
- CJ/T 3066-1997內(nèi)磁水處理器
- 院內(nèi)急重癥快速反應(yīng)小組
評論
0/150
提交評論