青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

xiaoguozi's Blog
Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習(xí)慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預(yù)料,人們需要更細(xì)心的觀察別人,要隨時(shí)注意才能保護(hù)別人,因?yàn)樗麄兾幢刂雷约阂裁础ぁぁぁぁ?/span>
實(shí)現(xiàn)思路,剛開始的時(shí)候我是用ViewFlipper控件來做非常的簡(jiǎn)單但是實(shí)現(xiàn)不了拖拽移動(dòng)屏幕的效果,最終放棄決定自定義一個(gè)控件實(shí)現(xiàn)這樣效果。

接下來我詳細(xì)的解說一下我開發(fā)時(shí)寫的這個(gè)實(shí)驗(yàn)demo,軟件中用的滑屏就是由這樣的代碼實(shí)現(xiàn)的。

       首先新建一個(gè)控件類TouchPageView并且繼承自ViewGroup,左右滑動(dòng)換屏我的實(shí)現(xiàn)是在TouchPageView添加3個(gè)子view 分別代表看不到的左邊屏幕、可以看到的中間屏幕、看不到的右邊屏幕,這樣在滑屏?xí)r候就可以通過不斷調(diào)整這3個(gè)view的位置實(shí)現(xiàn)連續(xù)不間斷滑屏換屏,下面 的實(shí)驗(yàn)中我分別把3個(gè)view設(shè)置成紅色、綠色、黃色這樣切換的時(shí)候可以看到明顯效果,這3個(gè)view在TouchPageView的構(gòu)造方法中調(diào)用 init方法進(jìn)行初始化:

private void init()
{
views= new ArrayList<LinearLayout>();
view1=new LinearLayout(context);
view1.setBackgroundColor(Color.YELLOW);
this.addView(view1);
TextView tv=new TextView(context);
tv.setText("測(cè)試");
view1.addView(tv);
views.add(view1);


view2=new LinearLayout(context);
view2.setBackgroundColor(Color.RED);
this.addView(view2);
views.add(view2);

view3=new LinearLayout(context);
view3.setBackgroundColor(Color.GREEN);
this.addView(view3);
views.add(view3);

final ViewConfiguration configuration = ViewConfiguration.get(getContext());
mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
}

       接下來的實(shí)現(xiàn)是關(guān)鍵,重寫onLayout方法對(duì)3個(gè)view的顯示位置布局進(jìn)行控制,通過下面的這個(gè)方法,把3個(gè)view進(jìn)行水平一個(gè)跟著一個(gè)進(jìn)行布局顯示。

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int childLeft = -1;
final int count = views.size();
//水平從左到右放置
for (int i = 0; i < count; i++) {

final View child =views.get(i);
if (child.getVisibility() != View.GONE) {
final int childWidth = child.getMeasuredWidth();
if(childLeft==-1)
{
childLeft=-childWidth;
}
child.layout(childLeft, 0, childLeft + childWidth, child.getMeasuredHeight());
childLeft += childWidth;
}
}

}

       3個(gè)view位置放置好之后,接下來的實(shí)現(xiàn)實(shí)現(xiàn)手指在屏幕拖拽滑動(dòng)時(shí)讓3個(gè)view跟著手指的位置進(jìn)行變化顯示,這個(gè)肯定是在onTouchEvent 方法中實(shí)現(xiàn)了,分別在MotionEvent.ACTION_DOWN、MotionEvent.ACTION_MOVE、 MotionEvent.ACTION_UP三個(gè)手指狀態(tài)中進(jìn)行控制,在下面的實(shí)現(xiàn)中還采用了VelocityTracker的方法對(duì)手指的滑動(dòng)速度進(jìn)行 跟蹤,這樣根據(jù)滑動(dòng)速度決定屏幕往哪個(gè)方向換屏,關(guān)鍵的代碼如下:

@Override
public boolean onTouchEvent(MotionEvent ev){

if(!lock)
{
if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
}
mVelocityTracker.addMovement(ev);

final int action = ev.getAction();
final float x = ev.getX();
final float y = ev.getY();

switch (action) {
case MotionEvent.ACTION_DOWN://按下去
if(touchState==TOUCH_STATE_REST)

{
//記錄按下去的的x坐標(biāo)
lastMotionX = x;

touchState=TOUCH_STATE_MOVING;

isMoved=false;
}

break;
case MotionEvent.ACTION_MOVE://拖動(dòng)時(shí)
if(touchState==TOUCH_STATE_MOVING)

{
float offsetX=x-lastMotionX;
float offsetY=y-lastMotionY;

if(isMoved)
{
lastMotionX=x;
lastMotionY=y;

final int count = views.size();
//水平從左到右放置
for (int i = 0; i < count; i++) {

final View child =views.get(i);
if (child.getVisibility() != View.GONE) {
final int childWidth = child.getMeasuredWidth();
int childLeft = child.getLeft()+(int)offsetX;
child.layout(childLeft, 0, childLeft + childWidth, child.getMeasuredHeight());
childLeft += childWidth;
}
}
}
else if(Math.abs(offsetX)>TOUCH_SLOP||Math.abs(offsetY)>TOUCH_SLOP)
{
//移動(dòng)超過閾值,則表示移動(dòng)了
isMoved=true;

removeCallbacks(mLongPressRunnable);
}
}

break;
case MotionEvent.ACTION_UP://放開時(shí)
//釋放了
removeCallbacks(mLongPressRunnable);


if(isMoved)
{
if(touchState==TOUCH_STATE_MOVING)
{
touchState=TOUCH_STATE_SLOWING;
int sign=0;
final VelocityTracker velocityTracker = mVelocityTracker;
//計(jì)算當(dāng)前速度
velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);

//x方向的速度
int velocityX = (int) velocityTracker.getXVelocity();

if(velocityX > SNAP_VELOCITY)//足夠的能力向左
{

sign=1;
Log.e("enough to move left", "true");
}
else if (velocityX < -SNAP_VELOCITY)//足夠的能力向右
{

sign=-1;
Log.e("enough to move right", "right");
}
else
{
sign=0;
}
moveToFitView(sign);
if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker = null;
}

}
}


break;
}
}
return true;
}

       完成手指滑的功能后,最后在手指離開屏幕的時(shí)候,讓3個(gè)view滑動(dòng)到合適的位置,保證當(dāng)前屏幕只能看到一個(gè)完整的view另外2個(gè)view不可見,并 且在滑動(dòng)的過程中為了達(dá)到比較自然的效果,采用減速滑動(dòng)的實(shí)現(xiàn),這里是用了Handler進(jìn)行間隔的減速移動(dòng)效果,這樣滑動(dòng)起來比較舒服,其實(shí)最好的效果 應(yīng)該加入阻尼效果,就是讓view一定程度的沖過屏幕邊界然后在回彈,經(jīng)過幾次這樣的緩減至速度為零然后最終停止,這個(gè)可以由各位自己去實(shí)現(xiàn),并不難寫。

int offset=0;
private void moveToFitView(int sign)
{
boolean b=swapView(sign);
if(true)
{
View view1=views.get(1);
int left=view1.getLeft();
//int offset=0;
if(left!=0)

{
offset=-1*left;
}

moveView();
}
}

FlipAnimationHandler mAnimationHandler;
int ovv=40;
private void moveView()
{
final int count = views.size();

if(offset!=0)
{
int ov=0;
if(offset>0)
{
ov=ovv;
}
else
{
ov=-1*ovv;
}
ovv=ovv-3;
if(ovv<1)
{
ovv=3;
}
if(Math.abs(offset)<Math.abs(ov))
{
ov=offset;
offset=0;

}
else
{
offset=offset-ov;
}

//水平從左到右放置
for (int i = 0; i < count; i++) {

final View child =views.get(i);
final int childWidth = child.getMeasuredWidth();
int childLeft = child.getLeft()+ov;
child.layout(childLeft, 0, childLeft + childWidth, child.getMeasuredHeight());
childLeft += childWidth;
}

if(mAnimationHandler==null)
{
mAnimationHandler = new FlipAnimationHandler();
}
mAnimationHandler.sleep(1);
}
else
{
ovv=40;
touchState=TOUCH_STATE_REST;
}
}

class FlipAnimationHandler extends Handler {
@Override
public void handleMessage(Message msg) {
TouchPageView.this.moveView();
}

public void sleep(long millis) {
this.removeMessages(0);
sendMessageDelayed(obtainMessage(0), millis);
}
}

整個(gè)自定義控件核心的思路和代碼就上面這些了,實(shí)現(xiàn)效果請(qǐng)參看我的微讀效果。

完整的代碼:

 

package xx.weidu;
 
import java.util.ArrayList;
import java.util.List;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
 
public class TouchPageView extends ViewGroup{
 
    private LinearLayout view1;
    private LinearLayout view2;
    private LinearLayout view3;
     
 
    //速度跟蹤
    private VelocityTracker mVelocityTracker;
    private int mMaximumVelocity;
     
    //手勢(shì)臨界速度,當(dāng)速度超過這個(gè)時(shí)切換到下一屏
    private static final int SNAP_VELOCITY = 100;
     
    //停止?fàn)顟B(tài)
    private final static int TOUCH_STATE_REST = 0;
    //滾動(dòng)狀態(tài)
    private final static int TOUCH_STATE_MOVING = 1;
    //減速停止?fàn)顟B(tài)
    private final static int TOUCH_STATE_SLOWING = 2;
     
    //當(dāng)前觸摸狀態(tài)
    private int touchState = TOUCH_STATE_REST;
     
    private boolean lock=false;
     
    private float lastMotionX;
    private float lastMotionY;
     
    private Context context;
    private List<LinearLayout> views;
    //是否移動(dòng)了
    private boolean isMoved;
    //長(zhǎng)按的runnable
    private Runnable mLongPressRunnable;
    //移動(dòng)的閾值
    private static final int TOUCH_SLOP=10;
     
    public int width;
     
    public int height;
     
    public TouchPageView(Context context) {
        super(context);
        this.context=context;
        init();
    }
     
    private void init()
    {
        views= new ArrayList<LinearLayout>();
        view1=new LinearLayout(context);
        view1.setBackgroundColor(Color.YELLOW);
        this.addView(view1);
        TextView tv=new TextView(context);
        tv.setText("測(cè)試");
        view1.addView(tv);
        views.add(view1);
         
         
        view2=new LinearLayout(context);
        view2.setBackgroundColor(Color.RED);
        this.addView(view2);
        views.add(view2);
         
        view3=new LinearLayout(context);
        view3.setBackgroundColor(Color.GREEN);
        this.addView(view3);
        views.add(view3);
         
        final ViewConfiguration configuration = ViewConfiguration.get(getContext());
        mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
    }
     
     
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        final int count = views.size();
        for (int i = 0; i < count; i++) {
            final View child =views.get(i);
            child.measure(widthMeasureSpec,heightMeasureSpec);
        }
         
        int finalWidth, finalHeight;
        finalWidth = measureWidth(widthMeasureSpec);
        finalHeight = measureHeight(heightMeasureSpec);
 
        this.width=finalWidth;
        this.height=finalHeight;
 
    }
     
    private int measureWidth(int measureSpec) {
        int result = 0;
        int specMode = MeasureSpec.getMode(measureSpec);
        int specSize = MeasureSpec.getSize(measureSpec);
 
        if (specMode == MeasureSpec.EXACTLY) {
            result = specSize;
        } else {
            result = specSize;
        }
 
        return result;
    }
     
    private int measureHeight(int measureSpec) {
        int result = 0;
        int specMode = MeasureSpec.getMode(measureSpec);
        int specSize = MeasureSpec.getSize(measureSpec);
 
        if (specMode == MeasureSpec.EXACTLY) {
            result = specSize;
        } else {
            result = specSize;
        }
        return result;
    }
 
    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        int childLeft = -1;
        final int count = views.size();
        //水平從左到右放置
        for (int i = 0; i < count; i++) {
            final View child =views.get(i);
            if (child.getVisibility() != View.GONE) {
                final int childWidth = child.getMeasuredWidth();
                if(childLeft==-1)
                {
                    childLeft=-childWidth;
                }
                child.layout(childLeft, 0, childLeft + childWidth, child.getMeasuredHeight());
                childLeft += childWidth;
            }
        }
         
    }
     
    //繪制子元素
    @Override
    protected void onDraw(Canvas canvas) {
        //水平從左到右放置
        int count = views.size();
        for (int i = 0; i < count; i++) {
            View child =views.get(i);
            drawChild(canvas, child, getDrawingTime());
        }
    }
 
    @Override
    public boolean onTouchEvent(MotionEvent ev){
         
        if(!lock)
        {
            if (mVelocityTracker == null) {
                mVelocityTracker = VelocityTracker.obtain();
            }
            mVelocityTracker.addMovement(ev);
             
            final int action = ev.getAction();
            final float x = ev.getX();
            final float y = ev.getY();
             
            switch (action) {
            case MotionEvent.ACTION_DOWN://按下去
                if(touchState==TOUCH_STATE_REST)
                {
                    //記錄按下去的的x坐標(biāo)
                    lastMotionX = x;
                    touchState=TOUCH_STATE_MOVING;
                     
                    isMoved=false;
                }
                 
                break;
            case MotionEvent.ACTION_MOVE://拖動(dòng)時(shí)
                if(touchState==TOUCH_STATE_MOVING)
                {
                    float offsetX=x-lastMotionX;
                    float offsetY=y-lastMotionY;
                     
                    if(isMoved)
                    {
                        lastMotionX=x;
                        lastMotionY=y;
 
                        final int count = views.size();
                        //水平從左到右放置
                        for (int i = 0; i < count; i++) {
                            final View child =views.get(i);
                            if (child.getVisibility() != View.GONE) {
                                final int childWidth = child.getMeasuredWidth();
                                int childLeft = child.getLeft()+(int)offsetX;
                                child.layout(childLeft, 0, childLeft + childWidth, child.getMeasuredHeight());
                                childLeft += childWidth;
                            }
                        }
                    }
                    else if(Math.abs(offsetX)>TOUCH_SLOP||Math.abs(offsetY)>TOUCH_SLOP)
                    {
                        //移動(dòng)超過閾值,則表示移動(dòng)了
                        isMoved=true;
                        removeCallbacks(mLongPressRunnable);
                    }
                }
                 
                break;
            case MotionEvent.ACTION_UP://放開時(shí)
                //釋放了
                removeCallbacks(mLongPressRunnable);
                 
                if(isMoved)
                {
                    if(touchState==TOUCH_STATE_MOVING)
                    {
                        touchState=TOUCH_STATE_SLOWING;
                        int sign=0;
                        final VelocityTracker velocityTracker = mVelocityTracker;
                        //計(jì)算當(dāng)前速度
                        velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
                        //x方向的速度
                        int velocityX = (int) velocityTracker.getXVelocity();
                        if(velocityX > SNAP_VELOCITY)//足夠的能力向左
                        {
                            sign=1;
                            Log.e("enough to move left", "true");
                        }
                        else if (velocityX < -SNAP_VELOCITY)//足夠的能力向右
                        {
                            sign=-1;
                            Log.e("enough to move right", "right");
                        }
                        else
                        {
                            sign=0;
                        }
                        moveToFitView(sign);
                        if (mVelocityTracker != null) {
                            mVelocityTracker.recycle();
                            mVelocityTracker = null;
                        }
                         
                    }
                }
                 
                 
                break;
            }
        }
        return true;
    }
     
    int offset=0;
    private void moveToFitView(int sign)
    {
        boolean b=swapView(sign);
        if(true)
        {
            View view1=views.get(1);
            int left=view1.getLeft();
            //int offset=0;
            if(left!=0)
            {
                offset=-1*left;
            }
             
            moveView();
        }
    }
     
    FlipAnimationHandler mAnimationHandler;
    int ovv=40;
    private void moveView()
    {
        final int count = views.size();
         
        if(offset!=0)
        {
            int ov=0;
            if(offset>0)
            {
                ov=ovv;
            }
            else
            {
                ov=-1*ovv;
            }
            ovv=ovv-3;
            if(ovv<1)
            {
                ovv=3;
            }
            if(Math.abs(offset)<Math.abs(ov))
            {
                ov=offset;
                offset=0;
                 
            }
            else
            {
                offset=offset-ov;
            }
             
            //水平從左到右放置
            for (int i = 0; i < count; i++) {
                final View child =views.get(i);
                final int childWidth = child.getMeasuredWidth();
                int childLeft = child.getLeft()+ov;
                child.layout(childLeft, 0, childLeft + childWidth, child.getMeasuredHeight());
                childLeft += childWidth;
            }
             
            if(mAnimationHandler==null)
            {
                mAnimationHandler = new FlipAnimationHandler();
            }
            mAnimationHandler.sleep(1);
        }
        else
        {
            ovv=40;
            touchState=TOUCH_STATE_REST;
        }
    }
     
    class FlipAnimationHandler extends Handler {
        @Override
        public void handleMessage(Message msg) {
            TouchPageView.this.moveView();
        }
 
        public void sleep(long millis) {
            this.removeMessages(0);
            sendMessageDelayed(obtainMessage(0), millis);
        }
    }
     
    private boolean swapView(int sign)
    {
        boolean b=false;
        if(sign==-1)//向左
        {
            View view0=views.get(0);
            if(view0.getLeft()<=-1*view0.getMeasuredWidth())
            {
                swapViewIndex(sign);
                 
                View view2=views.get(1);
                View view3=views.get(2);
                int childWidth=view2.getMeasuredWidth();
                int childLeft=view2.getLeft()+childWidth;
                view3.layout(childLeft, 0, childLeft + view3.getMeasuredWidth(), view3.getMeasuredHeight());
                b=true;
            }
        }
        else if(sign==1)//向右
        {
            View view3=views.get(2);
            if(view3.getLeft()>view3.getMeasuredWidth())
            {
                swapViewIndex(sign);
                 
                View view1=views.get(0);
                View view2=views.get(1);
                int childRight=view2.getLeft();
                int childLeft=childRight-view1.getMeasuredWidth();
                view1.layout(childLeft, 0, childRight, view1.getMeasuredHeight());
                b=true;
            }
        }
         
        return b;
    }
     
    private void swapViewIndex(int sign)
    {
        if(sign==-1)//向左
        {
            LinearLayout v=views.remove(0);
            views.add(v);
        }
        else if(sign==1)//向右
        {
            LinearLayout v=views.remove(views.size()-1);
            views.add(0, v);
        }
    }
}
posted on 2012-03-01 17:06 小果子 閱讀(698) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Android & Ios
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久伊人免费视频| 国产精品v欧美精品v日韩精品 | 国产精品永久免费视频| 欧美日韩高清一区| 欧美久久电影| 国产精品久久久| 国产精品久久久久久久久久ktv | 欧美电影在线观看完整版| 亚洲国产成人午夜在线一区| 免费看成人av| 日韩亚洲精品在线| 亚洲视频精品在线| 亚洲国产成人精品女人久久久| 国产日韩av一区二区| 韩国免费一区| 妖精视频成人观看www| 欧美一二三视频| 亚洲电影免费在线 | 精品999在线观看| 日韩视频在线免费| 久久久青草青青国产亚洲免观| 欧美国产日韩xxxxx| 亚洲深夜福利在线| 欧美91大片| 欧美国产精品一区| 欧美怡红院视频一区二区三区| 亚洲精品永久免费| 欧美一区二区视频观看视频| 暖暖成人免费视频| 亚洲自拍偷拍视频| 欧美精品日韩综合在线| 国产真实乱偷精品视频免| 中国av一区| 欧美成人免费观看| 欧美亚洲三级| 国产精品毛片va一区二区三区| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美成人| 亚洲精品一区二区三区av| 久久精品一区二区国产| 国产精品自在在线| 亚洲午夜视频| 亚洲欧洲精品一区二区三区不卡 | 欧美成人xxx| 在线播放亚洲| 久久久久在线| 午夜欧美不卡精品aaaaa| 欧美亚一区二区| 一本色道久久88综合日韩精品| 嫩草伊人久久精品少妇av杨幂| 亚洲男人第一网站| 国产精品日韩一区二区| 亚洲视频在线一区| 亚洲精品在线电影| 欧美日韩久久久久久| 日韩视频一区| 亚洲精品小视频| 欧美日韩国产综合视频在线观看中文 | 亚洲国产岛国毛片在线| 久久精品91久久久久久再现| 国产午夜精品久久久久久久| 欧美在线首页| 亚洲日本无吗高清不卡| 欧美大尺度在线| 裸体素人女欧美日韩| 最新高清无码专区| 亚洲日本中文字幕免费在线不卡| 另类av导航| 日韩视频一区二区在线观看 | 卡一卡二国产精品| 伊大人香蕉综合8在线视| 美女免费视频一区| 免费成人av在线看| 一区二区三区精品久久久| 一本久道综合久久精品| 在线一区二区三区做爰视频网站 | 久久久蜜桃精品| 精品成人乱色一区二区| 欧美99久久| 欧美国产日本在线| 亚洲欧美激情在线视频| 午夜精品久久久久影视 | 久久久久久久久伊人| 欧美一区激情视频在线观看| 在线观看亚洲视频啊啊啊啊| 亚洲黄色成人| 国产精品一区二区在线观看网站| 久久精品1区| 免费在线亚洲| 亚洲欧美偷拍卡通变态| 久久婷婷国产综合精品青草| 99精品黄色片免费大全| 性久久久久久久久久久久| 亚洲国产另类久久精品| 一区二区三区久久精品| 黄色av一区| 99国产麻豆精品| 韩日视频一区| 亚洲精品午夜| 在线观看日韩专区| 亚洲欧美国产精品va在线观看| 亚洲国产精品传媒在线观看| 亚洲天堂免费在线观看视频| 曰韩精品一区二区| 亚洲欧美日本另类| 亚洲三级电影在线观看 | 国产精品99免费看 | 欧美xx69| 国产精品日本| 亚洲欧洲日本专区| 狠狠色丁香久久婷婷综合_中| 99热在线精品观看| 亚洲国产日韩一级| 欧美在线看片| 午夜一区二区三视频在线观看 | 久久国产手机看片| 欧美日韩另类一区| 亚洲国产精品一区二区尤物区| 国产日韩欧美高清| 亚洲在线免费| 亚洲综合色噜噜狠狠| 欧美xx视频| 欧美gay视频激情| 国精品一区二区三区| 亚洲欧美经典视频| 亚洲一区在线看| 一本久久a久久免费精品不卡| 久久免费视频网| 欧美在线视屏 | 日韩视频免费在线| 蜜桃av一区二区在线观看| 久久久久久久久久久久久9999| 欧美性做爰毛片| 在线一区二区三区做爰视频网站 | 黄色成人精品网站| 鲁鲁狠狠狠7777一区二区| 一区二区欧美日韩| 在线一区欧美| 中日韩午夜理伦电影免费| 亚洲国产天堂久久综合| 免费短视频成人日韩| 久久免费少妇高潮久久精品99| 亚洲天堂成人在线视频| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品永久在线| 午夜免费久久久久| 久久九九热re6这里有精品| 国产精品白丝jk黑袜喷水| 一本在线高清不卡dvd| 亚洲香蕉伊综合在人在线视看| 久久影院午夜片一区| 国产亚洲成av人片在线观看桃| 午夜精品久久久久久久99樱桃| 久久人人爽人人爽爽久久| 亚洲国产精品久久久久婷婷老年 | 久久xxxx| 欧美国产日韩视频| 在线亚洲欧美视频| 国产欧美日韩亚洲精品| 久久国产精品亚洲77777| 免费亚洲网站| 在线视频你懂得一区| 国产亚洲精品bt天堂精选| 毛片一区二区| 一区二区三区高清视频在线观看| 欧美一区综合| 91久久亚洲| 国产精品永久| 欧美精品少妇一区二区三区| 亚洲午夜一区二区| 男男成人高潮片免费网站| 一本大道久久a久久综合婷婷| 国产精品一区二区三区成人| 裸体歌舞表演一区二区| 在线视频欧美日韩| 欧美a级片网站| 欧美一区二区三区视频在线| 亚洲人成久久| 国产区在线观看成人精品| 欧美福利一区二区三区| 亚洲欧美综合一区| 亚洲精品在线视频| 久久夜色精品国产欧美乱| 99re6热在线精品视频播放速度| 久久精品国产精品| 99ri日韩精品视频| 激情综合电影网| 国产精品一二三四| 欧美精品日韩一区| 久久网站免费| 亚洲欧美视频在线| 洋洋av久久久久久久一区| 亚洲丶国产丶欧美一区二区三区 | 中国av一区| 久久综合久久久| 国产精品99久久久久久有的能看| 免费成人黄色av| 一本在线高清不卡dvd| 欧美在线观看网站| 悠悠资源网久久精品|