本篇文章給大家分享的是有關(guān)Android項(xiàng)目中實(shí)現(xiàn)滑動(dòng)功能的方法有哪些,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
在鐘祥等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,鐘祥網(wǎng)站建設(shè)費(fèi)用合理。一、Android坐標(biāo)體系
在講解滑動(dòng)之前,我們有必要簡單提一下Android的坐標(biāo)體系,因?yàn)榛瑒?dòng)的實(shí)質(zhì)就是坐標(biāo)的不斷改變,所以我們先來了解一下Android坐標(biāo)系和視圖坐標(biāo)系兩個(gè)概念。直接放上兩張圖片吧,一目了然。
Android坐標(biāo)系
視圖坐標(biāo)系
從上面的兩張圖可以看出,Android坐標(biāo)系的坐標(biāo)原點(diǎn)位于屏幕的左上角,而視圖坐標(biāo)系的原點(diǎn)位于父視圖的左上角,既然提供了兩種不同的坐標(biāo)系,那么我們?nèi)绾蝸慝@取坐標(biāo)呢,Android已經(jīng)給我們提供了一些方法用于獲取這些坐標(biāo),看下面的圖便一目了然。
Android獲取坐標(biāo)的各種方法
二、layout方法
在View進(jìn)行繪制時(shí),是調(diào)用onLayout()方法來確定View的位置的,同樣我們也可以調(diào)用layout()方法來傳入我們滑動(dòng)后的坐標(biāo)便可以實(shí)現(xiàn)View的滑動(dòng),當(dāng)然坐標(biāo)的獲取我們可以在觸控事件中進(jìn)行獲取,下面我們做一個(gè)View隨手指進(jìn)行滑動(dòng)的小例子來進(jìn)行說明。
public class DragView extends View { private int mLastX; private int mLastY; public DragView(Context context) { this(context, null); } public DragView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public DragView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onTouchEvent(MotionEvent event) { int x = (int) event.getX(); int y = (int) event.getY(); int lastX = 0, lastY = 0; switch (event.getAction()){ case MotionEvent.ACTION_DOWN: mLastX = x; mLastY = y; break; case MotionEvent.ACTION_MOVE: int offsetX = x - mLastX; int offsetY = y - mLastY; layout(getLeft() + offsetX, getTop() + offsetY, getRight() + offsetX, getBottom() + offsetY); break; } return true; } }