Android自定義改變字型的進度條

2021-08-25 11:56:32 字數 2401 閱讀 8101

最近做簡單的富文字的專案,需要動態改變字型的大小,我是寫在pupowindow中的,先看效果:

思路:其實思路很簡單,就是花7條豎著的線和6條橫著的線,然後畫乙個thumb,根據手指的位置,進行thumb位置的改變。

話不多說,直接上**,基本注釋都給了:

public

class

sliderfont

extends

view ;

private

static

final string tag = "sliderfont";

public

sliderfont(context context)

public

sliderfont(context context, @nullable attributeset attrs)

public

sliderfont(context context, @nullable attributeset attrs

, int defstyleattr)

private

void

init()

@override

protected

void

onmeasure(int widthmeasurespec, int heightmeasurespec) else

if(heightmode == measurespec.at_most)else

setmeasureddimension(mwidth,mheight);

}public

void

setparentwidth(int width)

@override

protected

void

ondraw(canvas canvas)

}//畫thumb

mthumb.setbounds(mcenterx-mheight/2+5,mcentery-mheight/2+5,

mcenterx+mheight/2-5,mcentery+mheight/2-5);

mthumb.draw(canvas);

}@override

protected

void

onlayout(boolean changed, int left, int top, int right, int bottom)

//得到每一段的距離

mspec = msliderwidth/(fontsize.length-1);

//thumb的中心位置

mcenterx = mspec*mindex+moffsetleft;

mcentery = (mheight-30)/2+15;

}public

void

setcenter(float center)

public

intadjustcenter(float local)

if(mindex>=6)

mcenterx = mspec*mindex+moffsetleft;

invalidate();

return mindex;

}public

float

getfontsize(int index)

public

intgetindex()

public

void

move(float spec)

if(mcenterx >=mwidth-moffsetleft)}}

然後是重寫的ontuchevent方法:在mainactivity中

@override

public boolean ontouch(view v, motionevent event)

}else

if(event.getaction() == motionevent.action_down)

}else

if(event.getaction() == motionevent.action_up)

mchangefont = false;

}return

true;

}

在這裡,我只是為了看效果,就直接將螢幕寬度傳了進去,所以有一點偏差,所以最好是用sliderfont所在布局的寬度。

在pupowindow中,我使用的是pupowindow的寬度,就沒有偏差。

效果圖:

Android 自定義字型

今天在工作中遇到乙個很少用到的知識點,怎樣給我們的應用新增特殊字型,因為隨著開發的一步步進步,而字型也成為應用的一部分,好的字型給我們的應用帶來的不僅僅是好的使用者體驗,更是一種享受 下面我就一步一步給大家新增字型 1.首先在res 中新建乙個資料夾assets,在assets中建立新資料夾font...

Android 自定義TextView字型!

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

Android使用自定義字型

在android studio中main目錄下建立assets目錄 如果沒有的話 我們也可以通過專案根目錄下的.iml檔案設定assets的目錄,新增如下節點 然後在下面新增fonts目錄並把ttf檔案拷進去 然後在 中實現 assetmanager mgr getassets 得到assetman...