自定義閃爍Textview

2021-08-08 19:19:47 字數 2314 閱讀 5554

一直感覺自定義view是乙個比較難的點,但是要成為乙個合格的android開發者,自定義view又是必經之路。今天我就帶大家寫乙個簡單的自定義textview。

在自定義view之前先看一下簡單知識點。

1.view的測量。

view的測量模式有三種,精確模式(exactly)如控制項具體寬高的大小;最大值模式(at_most)當指定為wrap_content時,隨view的內容大小變化,不指定模式(unspecified)view想多大就多大。view類預設只支援exactily模式,如果想要自定義view支援wrap_content屬性時,必須重寫onmeasure()方法來指定wrap_content屬性。

如下就是乙個和wifi****類似的閃爍textview;

packagecom.zyl_android.textviewtest;

importandroid.content.context;

importandroid.graphics.canvas;

importandroid.graphics.color;

importandroid.graphics.lineargradient;

importandroid.graphics.matrix;

importandroid.graphics.shader;

importimportandroid.text.textpaint;

importandroid.util.attributeset;

/*** created by bibinet on 2017-9-27.

*/public classsecondtextviewextendsprivate intmviewwidith;

privatetextpaintmpaint;

privatelineargradientmlineargradient;

privatematrixmgradientmatrix;

private intmtranslate;

publicsecondtextview(context context)

publicsecondtextview(context context, attributeset attrs)

publicsecondtextview(context context, attributeset attrs,intdefstyleattr)

@override

protected voidonsizechanged(intw,inth,intoldw,intoldh) ,null, shader.tilemode.clamp);

mpaint.setshader(mlineargradient);

mgradientmatrix=newmatrix();}}

}@override

protected voidondraw(canvas canvas)

mgradientmatrix.settranslate(mtranslate,0);

mlineargradient.setlocalmatrix(mgradientmatrix);

postinvalidatedelayed(100);}}

}

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

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

自定義控制項textview

自定義控制項名稱 public class cheyouquanlinearlayout extends viewgroup public cheyouquanlinearlayout context context,int horizontalspacing,int verticalspacing...

Android 自定義TextView字型!

兩種方法 方法一 在assets目錄下新建目錄fonts,然後存放自己的字型庫,我這裡是微軟雅黑weiruanyahei.ttf。textview tv typeface tf2 typeface.createfromasset getassets fonts weiruanyahei.ttf tv...