Android自定義TextView閃爍文字的效果

2021-07-25 16:00:14 字數 1276 閱讀 4277

要想實現這個效果,可以充分利用android中paint物件的shader渲染器。通過設定乙個不斷變化的lineargradient,並使用帶有該屬性的paint物件來繪製顯示的文字,首先在onsizechanged()方法中進行一些物件的初始化工作,並根據view的寬高設定乙個lineargradient漸變渲染器。

其中最關鍵的就是使用getpaint()方法獲取當前繪製textview的paint物件,並給這個paint物件設定原生textview沒有的lineargradient屬性,最後,在ondraw()方法中,通過矩陣的方式不斷平移漸變效果,從而在繪製文字時,產生動態的閃動效果,

自定義textview整體**如下:

import android.content.context;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.lineargradient;

import android.graphics.matrix;

import android.graphics.paint;

import android.graphics.shader;

import android.util.attributeset;

import android.widget.textview;

/** * created by song on 2016/12/27.

*/public class mytextview extends textview

public mytextview(context context, attributeset attrs)

@override

protected void onsizechanged(int w, int h, int oldw, int oldh) , null, shader.tilemode.clamp);

mpaint.setshader(mlineargradient);

mgradientmatrix = new matrix();}}

}@override

protected void ondraw(canvas canvas)

mgradientmatrix.settranslate(mtranslate, 0);

mlineargradient.setlocalmatrix(mgradientmatrix);

postinvalidatedelayed(100);}}

}

Android自定義控制項 自定義屬性

自定義屬性的過程 1.在res values資料夾中建立attrs的xml檔案。2.寫入標籤,定義子標籤attr,放入自定義屬性的名稱。format 可以用 來同時使用 1 reference 參考某一資源id 2 color 顏色值 3 boolean 布林值 4 dimension 尺寸值 帶有...

Android自定義View 自定義元件

自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...

Android自定義控制項之自定義View 二

效果如下圖 1 自定義ringview繼承view新增其構造方法並建立畫筆 public class ringview extends view protected boolean isrunning false public ringview context context public ring...