ViewPager隨著手指聯動,且字型隨之變色

2021-07-16 01:09:59 字數 2347 閱讀 8614

在此次專案中,總結了一下在viewpager+fragment的情況下,手指滑動viewpager,使得指標一起聯動,並且字型隨之變色的效果,參考了鴻洋大神的兩篇文章和其他開源**,此次做了比較完整的處理,以後如果有需要的話,可以直接拿來用。

具體的一些**塊貼上來僅供參考

自定義的scrolltabview,繼承自view,類似指標,會隨著手指的移動進行實時滑動

private

int mtabnum,mcurrentnum;

private

float mwidth,mtabwidth,moffset;

private

final paint mpaint =

newpaint

(paint.anti_alias_flag)

;private

int mbegincolor,mendcolor;

private lineargradient mgradient;

public

scrolltabview

(context context)

public

scrolltabview

(context context, attributeset attrs)

public

void

settabnum

(int num)

public

void

setcurrentnum

(int num)

public

void

setoffset

(int position,

float offset)

mcurrentnum = position;

moffset = offset;

invalidate()

;}@override

protected

void

ondraw

(canvas canvas)

//根據位置和偏移量來計算滑動條的位置

float left =

(mcurrentnum + moffset)

* mtabwidth;

float right = left + mtabwidth;

float top =

getpaddingtop()

;float bottom =

getheight()

-getpaddingbottom()

; lineargradient gradient =

newlineargradient

(left,

getheight()

,right,

getheight()

,mbegincolor,mendcolor, shader.tilemode.clamp)

; mpaint.

setshader

(gradient)

; canvas.

drawrect

(left,top,right,bottom,mpaint);}

public

void

setselectedcolor

(int precolor,

int nextcolor)

threeactivity的部分**塊,配合scrolltabview使用

private

void

initevents()

}@override

public

void

onpageselected

(int position)

@override

public

void

onpagescrollstatechanged

(int state)})

;}/** * 高亮文字

* @param position

*/protected

void

highlighttextview

(int position)

}/**

* 重置文字顏色

*/private

void

resettextviewcolor()

}}

最後是鴻洋大神寫的colortrackview這個類,主要處理字型變色這個效果,這個**塊我就不貼了

android 自己定義元件隨著手指自己主動畫圓

首先自己定義乙個view子類 package com.example.androidtest0.myview import android.content.context import android.graphics.canvas import android.graphics.color imp...

View 隨著手指的移動而放大和旋轉

一 效果 如上圖,手指頭放在mexpenditemview,當手指頭移動的時候,mtouchimageview隨著mexpenditemview的移動而縮放和旋轉 二 關鍵原始碼 private void initattribute private void touchexpandview view...

android 自定義元件隨著手指自動畫圓

首先自定義乙個view子類 package com.example.androidtest0.myview import android.content.context import android.graphics.canvas import android.graphics.color impo...