最近做簡單的富文字的專案,需要動態改變字型的大小,我是寫在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...