在此次專案中,總結了一下在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...