Android Scroller簡單用法

2021-10-23 01:24:15 字數 2064 閱讀 8333

android裡scroller類是為了實現view平滑滾動的乙個helper類。通常在自定義的view時使用,在view中定義乙個私有成員mscroller = new scroller(context)。設定mscroller滾動的位置時,並不會導致view的滾動,通常是用mscroller記錄/計算view滾動的位置,再重寫view的computescroll(),完成實際的滾動。 

mscroller.getcurrx() //獲取mscroller當前水平滾動的位置

mscroller.getcurry() //獲取mscroller當前豎直滾動的位置

mscroller.getfinalx() //獲取mscroller最終停止的水平位置

mscroller.getfinaly() //獲取mscroller最終停止的豎直位置

mscroller.setfinalx(int newx) //設定mscroller最終停留的水平位置,沒有動畫效果,直接跳到目標位置

mscroller.setfinaly(int newy) //設定mscroller最終停留的豎直位置,沒有動畫效果,直接跳到目標位置

//滾動,startx, starty為開始滾動的位置,dx,dy為滾動的偏移量, duration為完成滾動的時間

mscroller.startscroll(int startx, int starty, int dx, int dy) //使用預設完成時間250ms

mscroller.startscroll(int startx, int starty, int dx, int dy, int duration)

mscroller.computescrolloffset() //返回值為boolean,true說明滾動尚未完成,false說明滾動已經完成。這是乙個很重要的方法,通常放在view.computescroll()中,用來判斷是否滾動是否結束。

具體**:

public class customview extends linearlayout 

public customview(context context, attributeset attrs)

//呼叫此方法滾動到目標位置

public void smoothscrollto(int fx, int fy)

//呼叫此方法設定滾動的相對

public void smoothscrollby(int dx, int dy)

//為了易於控制滑屏控制,android框架提供了computescroll()方法去控制這個流程。在繪製view時,會在draw()過程呼叫該方法

@override

public void computescroll()

super.computescroll(); }

@override

public boolean ontouchevent(motionevent event)

return super.ontouchevent(event); }

class customgesturelistener implements gesturedetector.ongesturelistener

@override

public void onshowpress(motionevent e)

@override

public boolean onsingletapup(motionevent e)

@override

public boolean onscroll(motionevent e1, motionevent e2,

float distancex, float distancey)

@override

public void onlongpress(motionevent e)

@override

public boolean onfling(motionevent e1, motionevent e2, float velocityx,

float velocityy)

}}

android Scroller原理分析

在android中,scroller是用來實現view的滑動效果。使用的步驟如下 1.建立scroller物件 2.呼叫scroller.startscoller 或者fling 方法。3.在呼叫startscroller 或者fling 方法後呼叫invalidate 促使view重繪 4.重寫v...

Android Scroller學習筆記

今天看了一篇郭霖大神的關於scroller的文章,在這裡做個筆記,以方便學習。原文見鏈結android scroller完全解析,關於scroller你所需知道的一切 一,什麼是scroller scroller是乙個專門用來處理滾動效果的工具類,我們直接使用scroller的場景並不多,但是許多我...

BroadcastReciever簡單用法示例

生命週期非常短,在接受到廣播時建立,onrecieve 方法執行完後銷毀 10s內onrecieve 方法未執行完,會出現anr錯誤 broadcastreciever簡單用法示例 傳送廣播 intent intent new intent this,sendbraodcast intent 注 1...