Android Scroller簡單用法
相關API介紹如下
Java程式碼
- 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
- mScroller.startScroll(int startX, int startY, int dx, int dy, int duration)
- mScroller.computeScrollOffset() //返回值為boolean,true說明滾動尚未完成,false說明滾動已經完成。這是一個很重要的方法,通常放在View.computeScroll()中,用來判斷是否滾動是否結束。
舉例說明,自定義一個CustomView,使用Scroller實現滾動:
Java程式碼
- import android.content.Context;
- import android.util.AttributeSet;
- import android.util.Log;
- import android.view.View;
- import android.widget.LinearLayout;
- import android.widget.Scroller;
- public class CustomView extends LinearLayout {
- private static final String TAG = "Scroller";
- private Scroller mScroller;
- public CustomView(Context context, AttributeSet attrs) {
- super(context, attrs);
- mScroller = new Scroller(context);
- }
- //呼叫此方法滾動到目標位置
- public void smoothScrollTo(int fx, int fy) {
- int dx = fx - mScroller.getFinalX();
- int dy = fy - mScroller.getFinalY();
- smoothScrollBy(dx, dy);
- }
- //呼叫此方法設定滾動的相對偏移
- public void smoothScrollBy(int dx, int dy) {
- //設定mScroller的滾動偏移量
- mScroller.startScroll(mScroller.getFinalX(), mScroller.getFinalY(), dx, dy);
- invalidate();//這裡必須呼叫invalidate()才能保證computeScroll()會被呼叫,否則不一定會重新整理介面,看不到滾動效果
- }
- @Override
- public void computeScroll() {
- //先判斷mScroller滾動是否完成
- if (mScroller.computeScrollOffset()) {
- //這裡呼叫View的scrollTo()完成實際的滾動
- scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
- //必須呼叫該方法,否則不一定能看到滾動效果
- postInvalidate();
- }
- super.computeScroll();
- }
- }
相關推薦
Android Scroller簡單用法
Android裡Scroller類是為了實現View平滑滾動的一個Helper類。通常在自定義的View時使用,在View中定義一個私有成員mScroller = new Scroller(context)。設定mScroller滾動的位置時,並不會導致View的滾動,通
android Scroller簡單用法記錄
總體的流程:scroller儲存的是移動的資訊,這些資訊不針對任何的檢視,或者可以說是針對檢視樹。常用的最簡單的使用方法如下: 1、呼叫scroller的startScroll方法觸發滾動,但此時只是儲存了資訊,並沒有表明/指定哪些檢視需要滾動 2、startScroll呼
Android Scroller 的簡單用法
關於scroller 他是Androidview 移動的一個輔助類 首先來說一說View 的移動, View 有兩個移動的方法: View.scrollBy(x, y) View.scrollTo(x, y) 需要注意的 這兩個方法 移動的不是View 本身, View
Android動態添加布局LayoutInflater簡單用法
下面是關於 LayoutInflater 簡單用法: 直接看例子,我想在 activity_main 檔案中動態的新增一個佈局;下面是 activity_main 檔案中的程式碼: <RelativeLayout xmlns:android="http://schemas.and
Android中AsyncTask的簡單用法
在開發Android移動客戶端的時候往往要使用多執行緒來進行操作,我們通常會將耗時的操作放在單獨的執行緒執行,避免其佔用主執行緒而給使用者帶來不好的使用者體驗。但是在子執行緒中無法去操作主執行緒(UI 執行緒),在子執行緒中操作UI執行緒會出現錯誤。因此android提供
Android—— ListView 的簡單用法及定製ListView介面
一、ListView的簡單用法 2. 訓練目標 1) 掌握 ListView 控制元件的使用 2) 掌握 Adapter 橋樑的作用 實現步驟: 1)首先新建一個專案, 並讓ADT 自動幫我們建立好活動。然後修改activity_main.xml 中的程式碼,如下所示:
Android圖片載入框架Glide的簡單用法
一、概述 Glide是一款由Bump Technologies開發的圖片載入框架,可以在android平臺上以很簡單的方式載入和展示圖片。 目前,Glide最新的穩定版本是3.7.0,這個版本的
Android資料儲存之SQLite簡單用法
實現效果圖如下: activity_main.xml佈局檔案 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/a
android:layout_marginLeft等的簡單用法
靠右顯示:用 android:layout_marginLeft,意思是距離左邊框的距離; 靠左顯示:用android:layout_marginRight,意思是距離右邊框的距離。 同理, android:layout_marginTop: 距離上邊框 android:
android final關鍵字用法簡單總結
final: final修飾的變數為常量,只能賦值一次,賦值後不可修改。 final方法不能被子類重寫 final類不能被繼承 1、final變數 必須初始化,初始化必須在宣告時或者構造方法中直接賦值。不能通過函式賦值。 2、final方法 fin
Android中資原始檔中的字串陣列string-array簡單用法
在Android中,用string-array是一種簡單的提取XML資原始檔資料的方法。 例子如下: 把相應的資料放到values資料夾的strings.xml檔案裡,或是其他自定義的xml中都可以,以下操作方法相同。 <?xml version="1.0" encoding="utf-8"?
Android裡回撥(callback)的簡單用法
接觸Android這麼久,老是聽到回撥這個詞,覺得很高大上,一直很想弄明白這到底是個什麼鬼東東,同事只用了簡簡單單的一句話就讓我有了很直觀的理解:一個監聽器就是一個回撥方法的實現!不知道你看到這句話是不是瞬間也有了一個很直觀的理解呢! 於是我自己嘗試著寫了一個簡單的回撥de
python argpare 模塊的簡單用法
python1、實例:#!/usr/bin/python #coding:utf-8 import argparse parser = argparse.ArgumentParser() parser.add_argument(‘-s‘,‘--string‘,dest=‘string‘,nargs=1
mysqldumpslow簡單用法
data 正則匹配 查詢 語句 itl 數據 lac undefine mysql mysqldumpslow命令/path/mysqldumpslow -s c -t 10 /database/MySQL/slow-log這會輸出記錄次數最多的10條SQL語句,其中:
走入計算機的第十一天(shell的一些簡單用法)
調用 gen 眼睛 加載 賦值 mem end 表示 簡單用法 一 BASH的屬性 BASH中會存儲一些自身屬性的參數,啟用或關閉某一項功能 例如控制* .字符是否為通配 查看參數 set -o 關閉noglob參數 set -o noglob ls * ls: *:
Android各種Adapter用法
app urn turn drawable key save 比較 logs display ArrayAdapter比較簡單,但它只能用於顯示文字。 1 public class MainActivity extends AppCompatActivity { 2
Android HttpLoggingInterceptor的用法簡介
nbsp -- ide evel clas 記錄 pla public andro 該攔截器用於記錄應用中的網絡請求的信息。 示例 OkHttpClient client = new OkHttpClient(); HttpLoggingInterceptor l
github超簡單用法
點贊 是你 cat 簡單用法 git push com 方便 改變 bug 參考: http://stormzhang.com/github/2016/05/25/learn-github-from-zero1/ 1. 為啥要用github 做一個項目會產生
popcorn-js視頻Video框架簡單用法
次數 update auto 框架 document web function lis 監聽 <div> <video class="video" id="ourvideobig" preload="auto" contr
python lambda表達式簡單用法
result 簡單的 函數 一個表 if else alex 內嵌 語句 代碼塊 條件運算時,對於簡單的 if else 語句,可以使用三元運算來表示,即: # 普通條件語句 if 1 == 1: name = ‘wupeiqi‘ else: name =