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

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;
    //長按的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>
            亚洲人精品午夜在线观看| 亚洲国产成人av在线| 亚洲欧美中文另类| 亚洲一二三四久久| 亚洲素人一区二区| 欧美一级视频| 美女久久一区| 欧美日韩精品欧美日韩精品 | 欧美高清视频一区| 免费成人av在线| 欧美精品一区二| 国产精品久久久久久久久果冻传媒| 国产精品久久久久久久久久三级| 国产日韩欧美不卡| 亚洲激情社区| 亚洲欧美美女| 久久在线91| 日韩视频免费在线观看| 欧美一区二区久久久| 免费人成网站在线观看欧美高清| 欧美日韩久久不卡| 国产综合亚洲精品一区二| 亚洲精品欧美日韩专区| 欧美一区二区啪啪| 亚洲人成网站影音先锋播放| 亚洲欧美经典视频| 欧美黄色成人网| 黄色精品免费| 午夜亚洲激情| 日韩午夜激情电影| 久久精品五月婷婷| 国产精品大片| 99综合精品| 女人色偷偷aa久久天堂| 亚洲综合欧美| 国产精品v亚洲精品v日韩精品| 在线免费高清一区二区三区| 亚洲欧美自拍偷拍| 91久久久在线| 美女久久网站| 狠狠色2019综合网| 久久成人18免费网站| 亚洲精品日产精品乱码不卡| 久久午夜精品| 黄色成人av网站| 久久一区国产| 久久成人羞羞网站| 国内视频精品| 久久综合久久综合这里只有精品| 亚洲一区二区三区午夜| 国产精品国产精品| 亚洲欧美中日韩| 性欧美18~19sex高清播放| 国产精品日韩在线观看| 亚洲性图久久| 亚洲免费中文| 国内精品久久久久久影视8| 久久精品在线视频| 欧美一区二区视频观看视频| 国产日韩一区二区三区| 久久成人在线| 久久激情五月丁香伊人| 一区二区三区在线高清| 欧美aaaaaaaa牛牛影院| 乱中年女人伦av一区二区| 欧美制服丝袜| 午夜激情综合网| 国产日韩欧美在线| 久久国产精品久久精品国产| 亚洲尤物在线| 红桃视频亚洲| 亚洲国产成人在线| 欧美视频日韩| 久久精品1区| 久热成人在线视频| 99综合视频| 午夜日韩视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 最新国产の精品合集bt伙计| 亚洲国产高清一区| 欧美日韩亚洲高清| 午夜久久影院| 欧美专区在线观看一区| 亚洲激情啪啪| 亚洲一区影音先锋| 亚洲电影下载| 亚洲一区二区av电影| 国产精品普通话对白| 久久免费黄色| 卡通动漫国产精品| 在线亚洲一区观看| 欧美亚洲综合另类| 亚洲精品日韩在线观看| 亚洲深夜福利网站| 亚洲第一福利视频| 一区二区三区高清| 亚洲国产国产亚洲一二三| 一本色道久久综合亚洲精品不卡 | 欧美精品激情在线观看| 午夜视频一区二区| 农夫在线精品视频免费观看| 午夜精彩视频在线观看不卡| 麻豆成人在线| 欧美一区午夜精品| 欧美乱大交xxxxx| 老色鬼精品视频在线观看播放| 欧美日韩精品久久久| 蜜臀91精品一区二区三区| 国产精品美女久久福利网站| 亚洲国产精品成人精品| 国内精品一区二区| 性色av一区二区三区在线观看| 中文久久乱码一区二区| 美女视频一区免费观看| 久久久久久穴| 国产欧亚日韩视频| 久久精品视频在线看| 亚洲国产一区二区三区高清| 亚洲影院免费| 亚洲视频碰碰| 欧美激情影院| 欧美激情 亚洲a∨综合| 韩日精品视频| 欧美一区二区啪啪| 午夜欧美大片免费观看| 欧美日韩一区二区国产| 亚洲欧洲日本专区| 亚洲精品专区| 欧美激情视频网站| 91久久精品美女高潮| 亚洲国产成人高清精品| 另类综合日韩欧美亚洲| 久久综合伊人77777麻豆| 国产日韩欧美高清| 羞羞漫画18久久大片| 久久成人在线| 国外成人网址| 久久先锋资源| 欧美国产精品久久| 亚洲日本欧美| 欧美精品情趣视频| 99国产一区| 欧美一级黄色录像| 国产亚洲福利一区| 久久精品国产久精国产思思| 久久人人看视频| 亚洲第一伊人| 欧美激情bt| 在线一区欧美| 久久久久久久91| 亚洲国产日韩欧美综合久久| 欧美成人日韩| 一本色道久久综合亚洲精品高清 | 亚洲砖区区免费| 国产女主播在线一区二区| 久久大逼视频| 亚洲狼人综合| 久久成人在线| 亚洲美女黄网| 国产伦精品免费视频 | 欧美wwwwww| 中文在线不卡| 免费成人av在线| 一区二区欧美亚洲| 国产亚洲美州欧州综合国| 久久综合国产精品| 亚洲三级视频在线观看| 欧美一区二区播放| 亚洲国产乱码最新视频 | 一区二区日韩欧美| 国内成+人亚洲| 欧美日韩国产一区精品一区| 亚洲免费在线视频| 亚洲三级国产| 欧美freesex8一10精品| 亚洲一区欧美一区| 亚洲激情av| 激情欧美一区二区三区在线观看| 欧美精品在线免费播放| 欧美在线二区| 亚洲一区二区精品| 亚洲精品国产精品乱码不99 | 亚洲国产精品成人综合| 欧美日韩成人一区二区| 欧美一区二区视频观看视频| 亚洲精品国产系列| 久久综合色8888| 欧美一区二区成人| 亚洲视频中文字幕| 最新国产拍偷乱拍精品 | 国产欧美日韩在线播放| 欧美激情第1页| 久久九九99视频| 亚洲影视九九影院在线观看| 亚洲精品麻豆| 亚洲春色另类小说| 美女视频黄 久久| 久久精品在线观看| 久久国产精品久久w女人spa| 亚洲尤物影院|