Scroller 的運用案例(一)
此類內容也不多,而我們經常用到的就更少了,
我在這裡記錄下我經常用到的幾個知識點 :
第一個知識點: public void startScroll(int startX, int startY, int dx, int dy) { startScroll(startX, startY, dx, dy, DEFAULT_DURATION); } 引數說明:startX開始變化時X的值,startY開始變化時Y的值,dx X的值變化的最大值,dy Y值變化的最大值 public void startScroll(int startX, int startY, int dx, int dy, int duration) { } 比上一方法多了一個執行時間的引數; 第二個知識點: public boolean computeScrollOffset() { } 此方法返回的是一個boolean型的值,這個boolean的只有什麼用呢,看方法名我們應該可以猜到, 此boolean值就是判斷我們呼叫startScroll 方法執行是否已經結束。 特別注意 :======返回true表示還沒有結束============ 因為方法名的原因,這裡我搞錯好多次了 此方法的用處可不止這一個,根據官方文件介紹 /** * Call this when you want to know the new location. If it returns true, * the animation is not yet finished. */ 大致意思是,呼叫此方法可以獲取新的位置,也就是想要獲取當前的X或Y的值嗎,就得先呼叫此方法; 那麼怎麼獲取當前的location呢, public final int getCurrX() { return mCurrX; } public final int getCurrX() { return mCurrX; } 實戰一: 實現圖片移動動畫效果 package moon.scrolldemo; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.RelativeLayout; import android.widget.Scroller; /** * Created by moon.zhong on 2015/2/10. */ public class ScrollLin extends RelativeLayout implements View.OnClickListener{ private Scroller mScroll ; private View mView ; private View mButton ; private boolean isFirst = true ; public ScrollLin(Context context) { this(context, null); } public ScrollLin(Context context, AttributeSet attrs) { this(context, attrs, 0); } public ScrollLin(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mScroll = new Scroller(getContext()) ; } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); if(isFirst){ Log.v("zgy", "=========isFirst==========") ; mView = getChildAt(0) ; mButton = getChildAt(1) ; mButton.setOnClickListener(this); } isFirst = false ; } @Override public void computeScroll() { if(mScroll.computeScrollOffset()){ int currentY = mScroll.getCurrY() ; /*這裡讓他平移*/ mView.setTranslationY(currentY); /*currentY的變化範圍 0 ~ -mView.getTop() */ Log.v("zgy", "=========mView=========="+currentY) ; invalidate(); } } @Override public void onClick(View v) { Log.v("zgy", "=========onClick==========") ; /*開始執行資料變化*/ mScroll.startScroll(0, 0, 0, -mView.getTop(), 2000); invalidate(); } } xml的程式碼: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <moon.scrolldemo.ScrollLin android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@drawable/ic_launcher"/> <Button android:layout_width="100dp" android:layout_height="50dp" android:text="開始" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true"/> </moon.scrolldemo.ScrollLin> </RelativeLayout>
相關推薦
Scroller 的運用案例(一)
此類內容也不多,而我們經常用到的就更少了, 我在這裡記錄下我經常用到的幾個知識點 : 第一個知識點: public void startScroll(int startX, int startY, int dx, int dy) { startScr
webpack開發案例(一)
sele tle 參數說明 logs css 直接 [] ima -128 案例一(基本打包) 基本前置條件 步驟一: <!DOCTYPE html> <html> <head> <meta charset="ut
shell腳本案例(一)批量創建用戶
shell 批量創建用戶 for linux 案例需求用shell腳本批量建立Linux用戶實現要求:創建用戶student1到student50,指定組為student組!而且每個用戶需要設定一個不同的密碼! 實現腳本 #!/bin/bash grep ‘student‘ /etc/grou
unity Socket TCP連線案例(一)
非常清晰的demo 服務端 using System; using System.Collections; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using Syste
unity Socket TCP連接案例(一)
mon star connect color 服務器 void ipaddress field .get 非常清晰的demo 服務端 using System; using System.Collections; using System.Collectio
SpringBoot的IOC模組註解及簡單案例(一)
本文將會講到SpringBoot的IOC模組下的註解進行總結,主要目的是為了方便之後查詢註解和快速應用。 將會以:元件註冊,生命週期,屬性賦值,自動裝配來進行區分。示例程式碼的註解很重要 一、元件註冊 1、@Configuration:標註在類上。主要是告訴 Sprin
HTML+CSS簡單的登陸+註冊介面仿照案例(一)
是新手在練習html+css,所以裡面的很多程式碼會比較冗雜,不是很簡潔,會慢慢提高水平的。1.整體介面分為三大部分:導航、主要內容、尾部資訊內容;主要內容細分為:左側欄(頁面資訊部分)、右側欄(登陸板塊)2.導航:裡面有四個li標籤,每個li標籤裡面都有一個a標籤,讓其右浮
Python初學者好玩案例(一):最短的抓取網頁圖片程式碼,只有10行
這幾天閒來無事,又研究了一下Python的基礎內容,首先研究的是如何抓取網頁資料。 發現大神們通常在初級教程裡就要寫很多程式碼,真讓我們這些初學者無所適從。 加上Python的各種版本不同,也會讓初學者頭腦,在此提醒初學者,看資料一定要注意軟體版本號。 還是按照我的原則,凡
dataTables分頁展示資料注意事項(案例)(一)
dataTables可以高效的提供大量資料的表格展示: 程式碼如: 前臺: table = $('#example').DataTable( { "ajax" : "/c", "orde
【Clion-Ubuntu-dlib】執行一個dlib案例(一)(如何在clion編譯器中配置CMakeLists)
目錄 第一步:新建一個dlib專案 第二步:執行一個案例hello world 第三步:配置CMakeList cmake_minimum_required(VERSION 2.8) project(cpp_eval) set(
說說EMC解決方案中的那些產品和案例(一)
認識我們 由於工作和興趣關係,我們作為一個團隊,平時一直密切關注著儲存業界的相關產品和最新資訊,也會把一些好的諮詢和經驗整理成文分享出來。去年我們釋出的兩個系列,【網路基本功-細說網路那些事兒】和【一站式學習Wireshark】,獲得了很多人的好評。我們希望在不同的線上和社
Hadoop學習筆記—20.網站日誌分析專案案例(一)專案介紹
網站日誌分析專案案例(一)專案介紹:當前頁面一、專案背景與資料情況1.1 專案來源 本次要實踐的資料日誌來源於國內某技術學習論壇,該論壇由某培訓機構主辦,匯聚了眾多技術學習者,每天都有人發帖、回帖,如圖1所示。圖1 專案來源網站-技術學習論壇 本次實踐的目的就在於通過對該
Jmeter效能測試案例(一)
一、測試需求:測試20個使用者訪問網站在負載達到30QPS時的平均響應時間 二、QPS:Query Per Second 每秒查詢率。(一臺查詢伺服器每秒能夠處理的查詢次數,作為域名伺服器的效能經常用每秒查詢率來衡量) 三、測試步驟 1、新增執行緒組(執行
python進階—numpy案例(一)
首先總結一下numpy如何讀取txt,excel,csv等格式的文件。 import numpy as np arr2 = np.arange(12).reshape(3,4) # 儲存資料到txt文件(fmt:資料格式,delimiter:分隔符) np.savetx
資料庫查詢案例(一) 單表查詢 45 題
use `部門僱員`; DROP TABLE dept; CREATE TABLE `dept` ( `deptno` bigint(2) NOT NULL PRIMARY KEY, `dname` varchar(20) default NULL, `loc` VARCHAR(20) defa
增量更新環節案例(一)
測試服(不限制ip)驗證完成,到正式服(限制ip)開白名單驗證,然後在線上灰度,正式對外,灰度是要看情況的。 測試要求: 要求是appversion1.0.2 resversion 1031 -> 升級後appversion不變,resversion 1032 當
ExtJs案例(一) ~~ Grid元件載入更多
目錄 一、需求 Grid元件載入更多 一、需求 最近,有個新的需求,用Ext Grid元件載入資料之後,點選“載入更多”按鈕,會在Grid表格後面追加新的內容。要求: 只返回後面追加的內容,不會返回原先的內容 設定Grid表格的滾動條在最下面
Javascript小案例(一):仿淘寶搜尋框使用者輸入事件的實現
淘寶是我們經常用的一個網上購物平臺,開啟淘寶網首頁,找到淘寶首頁的搜尋框,如下如所示: (截圖日期:2017年6月18日) 大家可以看到,當頁面一開啟,搜尋框中就可以看到灰色字型“少女高跟鞋”,還有閃爍的游標。當用戶點選輸入的時候,灰色字消失。當用戶清空
專案溝通案例(一)
場景1: A專案經理是剛入職的新任專案經理,迫於專案壓力,A專案經理必須在入職後的第二天就投入到專案組中去,並被要求立即開展專案工作。為了幫助A專案經理順利開始工作,部門經理組織專案組開了個會,把新任專案經理介紹給了專案組。 A專案經理進入專案組後,面臨的第一個問題,也是最
XML解析之sax解析案例(一)讀取contact.xml檔案,完整輸出文件內容
一、新建Demo2類: import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXP