黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

Android自定義控件實現方向盤效果

瀏覽:21日期:2022-09-24 17:21:45

在很多開發中,為了界面更加的友好,在自定義View的基礎上,開發者會開發出各種各樣的自定義控件來滿足實際開發需要,其中有一種”方向盤”的控件在實際開發中非常常見,便于用戶進行一些實際性的方向控制。

在復習參考了許多自定義控件的基礎上,我實現了一個最最基本的方向盤空間,并且可以根據方向做出相應的反應。話不多說,先看看效果。

做的有點丑,大家可以看看實際原理,后期再優化具體“方向盤”.

Android自定義控件實現方向盤效果

空間下面的幾行字是我為了確定方向所寫的一些參數,基本思想就是在方向盤的中心確定一個坐標軸,根據中間這個小圓的和中心點的距離與方向確定所處的方向。在手離開屏幕以后,小圓回到原點。

一言不合就放代碼~~~~

具體是怎么實現的呢??

來我們一起看看代碼,看完一目了然。

package com.sshhsun.socketudp.utils;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.view.View;public class MyWheel extends View implements Runnable,View.OnTouchListener { public MyWheel(Context context) { super(context); // TODO Auto-generated constructor stub } //先定義一些繪圖要用的基本參數 public static final int BOTTOM = 7; public static final int BOTTOM_LEFT = 8; public static final long DEFAULT_LOOP_INTERVAL = 100L; public static final int FRONT = 3; public static final int FRONT_RIGHT = 4; public static final int LEFT = 1; public static final int LEFT_FRONT = 2; public static final int RIGHT = 5; public static final int RIGHT_BOTTOM = 6; private final double RAD = 57.295779500000002D; private Paint button; private int buttonRadius; public double centerX = 0.0D; public double centerY = 0.0D; private Paint horizontalLine; private int joystickRadius; private int lastAngle = 0; private int lastPower = 0; private long loopInterval = 100L; private Paint mainCircle; //整個控件的大圓,及小紅點的活動范圍 //自定義的接口用于監聽處理控件的觸摸事件 private OnMyWheelMoveListener onmywheelMoveListener; private Paint secondaryCircle;//第二個內圓,小紅圓超過后開始處理角度 private Thread thread = new Thread(this); private Paint verticalLine; private int xPosition = 0; private int yPosition = 0; private static final String tag='MyWheel'; public MyWheel(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); initMyWheel(); //好吧,我知道MyWheel這個名字有點太隨便了........ } public MyWheel(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { super(paramContext, paramAttributeSet, paramInt); initMyWheel(); } //根據所處的位置得到角度 private int getAngle() { if (this.xPosition > this.centerX) { if (this.yPosition < this.centerY) {int m = (int) (90.0D + 57.295779500000002D * Math .atan((this.yPosition - this.centerY)/ (this.xPosition - this.centerX)));this.lastAngle = m;return m; } if (this.yPosition > this.centerY) {int k = 90 + (int) (57.295779500000002D * Math .atan((this.yPosition - this.centerY)/ (this.xPosition - this.centerX)));this.lastAngle = k;return k; } this.lastAngle = 90; return 90; } if (this.xPosition < this.centerX) { if (this.yPosition < this.centerY) {int j = (int) (57.295779500000002D * Math .atan((this.yPosition - this.centerY)/ (this.xPosition - this.centerX)) - 90.0D);this.lastAngle = j;return j; } if (this.yPosition > this.centerY) {int i = -90 + (int) (57.295779500000002D * Math.atan((this.yPosition - this.centerY) / (this.xPosition - this.centerX)));this.lastAngle = i;return i; } this.lastAngle = -90; return -90; } if (this.yPosition <= this.centerY) { this.lastAngle = 0; return 0; } if (this.lastAngle < 0) { this.lastAngle = -180; return -180; } this.lastAngle = 180; return 180; } //根據紅色圓的距離和角度得到方向 private int getDirection() { int k; int j = 0; int i; if ((this.lastPower == 0) && (this.lastAngle == 0)) { k = 0; return k; } if (this.lastAngle <= 0) j = 90 + -1 * this.lastAngle; while (true) { k = 1 + (j + 22) / 45; if (k <= 8) {break; } if (this.lastAngle <= 90) {j = 90 - this.lastAngle;continue; } j = 360 - (-90 + this.lastAngle); } return k; } //得到紅色圓與中心的距離 private int getPower() { return (this.lastPower=(int) (100.0D * Math.sqrt((this.xPosition - this.centerX)* (this.xPosition - this.centerX)+ (this.yPosition - this.centerY)* (this.yPosition - this.centerY)) / this.joystickRadius)); } private int measure(int paramInt) { int i = View.MeasureSpec.getMode(paramInt); int j = View.MeasureSpec.getSize(paramInt); if (i == 0) return 200; return j; } //初始化一些基本參數 protected void initMyWheel() { this.mainCircle = new Paint(1); this.mainCircle.setColor(Color.BLUE); this.mainCircle.setStrokeWidth(3.0f); this.mainCircle.setStyle(Paint.Style.STROKE); this.secondaryCircle = new Paint(); this.secondaryCircle.setColor(-16711936); this.secondaryCircle.setStrokeWidth(3.0f); this.secondaryCircle.setStyle(Paint.Style.STROKE); this.verticalLine = new Paint(); this.verticalLine.setStrokeWidth(5.0F); this.verticalLine.setColor(-65536); this.horizontalLine = new Paint(); this.horizontalLine.setStrokeWidth(2.0F); this.horizontalLine.setColor(-16777216); this.button = new Paint(1); this.button.setColor(Color.RED); this.button.setStyle(Paint.Style.FILL); } //初始化以后繪制方向盤。 protected void onDraw(Canvas paramCanvas) { this.centerX = (getWidth() / 2); this.centerY = (getHeight() / 2); paramCanvas.drawCircle((int) this.centerX, (int) this.centerY,this.joystickRadius, this.mainCircle); paramCanvas.drawCircle((int) this.centerX, (int) this.centerY,this.joystickRadius / 2, this.secondaryCircle); paramCanvas.drawLine((float) this.centerX, (float) this.centerY, (float) this.centerX, (float) (this.centerY - this.joystickRadius), this.verticalLine); paramCanvas.drawLine((float) (this.centerX - this.joystickRadius),(float) this.centerY,(float) (this.centerX + this.joystickRadius),(float) this.centerY, this.horizontalLine); paramCanvas.drawLine((float) this.centerX, (float) (this.centerY + this.joystickRadius), (float) this.centerX, (float) this.centerY, this.horizontalLine); paramCanvas.drawCircle(this.xPosition, this.yPosition,this.buttonRadius, this.button); } protected void onFinishInflate() { } protected void onMeasure(int paramInt1, int paramInt2) { int i = Math.min(measure(paramInt1), measure(paramInt2)); setMeasuredDimension(i, i); } protected void onSizeChanged(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { super.onSizeChanged(paramInt1, paramInt2, paramInt3, paramInt4); this.xPosition = (getWidth() / 2); this.yPosition = (getWidth() / 2); int i = Math.min(paramInt1, paramInt2); this.buttonRadius = (int) (0.20D * (i / 2)); this.joystickRadius = (int) (0.75D * (i / 2)); } @Override public boolean onTouchEvent(MotionEvent paramMotionEvent) { //根據手觸碰的坐標決定紅色小圓的位置 this.xPosition = (int) paramMotionEvent.getX(); this.yPosition = (int) paramMotionEvent.getY(); double d = Math.sqrt((this.xPosition - this.centerX)* (this.xPosition - this.centerX)+ (this.yPosition - this.centerY)* (this.yPosition - this.centerY)); if (d > this.joystickRadius) { this.xPosition = (int) ((this.xPosition - this.centerX) * this.joystickRadius / d + this.centerX); this.yPosition = (int) ((this.yPosition - this.centerY) * this.joystickRadius / d + this.centerY); } invalidate();//再重新繪制 if (paramMotionEvent.getAction() == 1) { this.xPosition = (int) this.centerX; this.yPosition = (int) this.centerY; this.thread.interrupt(); if (this.onmywheelMoveListener != null)this.onmywheelMoveListener.onValueChanged(getAngle(), getPower()); } if ((this.onmywheelMoveListener != null)&& (paramMotionEvent.getAction() == 0)) { if ((this.thread != null) && (this.thread.isAlive()))this.thread.interrupt(); this.thread = new Thread(this); this.thread.start(); if (this.onmywheelMoveListener != null)//自定義接口處理觸摸事件this.onmywheelMoveListener.onValueChanged(getAngle(), getPower()); } return true; } @Override public void run() { while (true) { if (Thread.interrupted())return; post(new Runnable() {public void run() {// Log.e(tag, '運行在'+Thread.currentThread().getName()+'線程中'); if (MyWheel.this.onmywheelMoveListener != null) MyWheel.this.onmywheelMoveListener.onValueChanged(MyWheel.this.getAngle(),MyWheel.this.getPower());} }); try {Thread.sleep(this.loopInterval); } catch (InterruptedException localInterruptedException) { } } } public void setOnMyWheelMoveListener( OnMyWheelMoveListener paramOnJoystickMoveListener, long paramLong) { this.onmywheelMoveListener = paramOnJoystickMoveListener; this.loopInterval = paramLong; } public static abstract interface OnMyWheelMoveListener { public abstract void onValueChanged(int paramInt1, int paramInt2); } @SuppressLint('ClickableViewAccessibility') @Override public boolean onTouch(View v, MotionEvent event) { /*處理這個控件的觸摸事件*/ return true; }}

怎么用?下面我給出我的調用實例進行講解

首先在XML文件中應用。

<LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:gravity='center' android:orientation='vertical' > <LinearLayout android:layout_width='wrap_content' android:layout_height='wrap_content' android:orientation='horizontal' > <Button android: android:layout_width='0dp' android:layout_height='wrap_content' android:layout_weight='1' android:text='蹲下' /> <Button android: android:layout_width='0dp' android:layout_height='wrap_content' android:layout_weight='1' android:text='站立' /> <Button android: android:layout_width='0dp' android:layout_height='wrap_content' android:layout_weight='1' android:text='準備' /> <Button android: android:layout_width='0dp' android:layout_height='wrap_content' android:layout_weight='1' android:text='坐下' /> <Button android: android:layout_width='0dp' android:layout_height='wrap_content' android:layout_weight='1' android:text='零態' /> </LinearLayout> <com.sshhsun.socketudp.utils.MyWheel android: android:layout_width='wrap_content' android:layout_height='wrap_content' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:text='這是簡單控制界面' /> <LinearLayout android:layout_width='wrap_content' android:layout_height='wrap_content' android:orientation='vertical' > <SeekBar android: android:layout_width='match_parent' android:layout_height='wrap_content' android:minHeight='3dp' android:minWidth='260dp' android:progress='100' /> </LinearLayout></LinearLayout>

在一個Fragment中引用實例并處理相應監聽事件。

package com.sshhsun.socketudp.fragment;import android.content.Context;import android.os.Bundle;import android.os.Vibrator;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.webkit.WebView.FindListener;import android.widget.Button;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import android.widget.TextView;import android.widget.Toast;import com.sshhsun.socketudp.R;import com.sshhsun.socketudp.activity.constant.Constant;import com.sshhsun.socketudp.utils.MyWheel;import com.sshhsun.socketudp.utils.MyWheel.OnMyWheelMoveListener;import com.sshhsun.socketudp.utils.UDPUtil;public class SimpleFragment extends Fragment implements View.OnClickListener { private MyWheel mtwheel; private TextView notice; private TextView show; private String direction = 'none'; private SeekBar seekbar; private static final String tag = 'SimpleFragment'; Vibrator vibator; private Context context = getActivity(); private boolean isturn = false; private Button stand; private Button sit; private Button standinit; private Button rest; private Button standzero; private UDPUtil udpUtil; private boolean issend = false; private boolean isstop = true; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return initView(inflater, container, savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initData(); initListener(); } public View initView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.frag_simple, null); //我的方向盤控件mtwheel mtwheel = (MyWheel) view.findViewById(R.id.mywheel); //控件下面的提示信息notice,其他控件大家可以忽略. notice = (TextView) view.findViewById(R.id.notice); seekbar = (SeekBar) view.findViewById(R.id.turns); seekbar.setProgress(50); stand = (Button) view.findViewById(R.id.simple_stand); sit = (Button) view.findViewById(R.id.simple_sit); standinit = (Button) view.findViewById(R.id.simple_standinit); rest = (Button) view.findViewById(R.id.simple_rest); standzero = (Button) view.findViewById(R.id.simple_standzero); return view; } public void initListener() { sit.setOnClickListener(this); standinit.setOnClickListener(this); rest.setOnClickListener(this); standzero.setOnClickListener(this); stand.setOnClickListener(this); //下面的監聽器代碼最為重要!!!!!!!! mtwheel.setOnMyWheelMoveListener(new OnMyWheelMoveListener() { @Override // paramInt1:角度 // paramInt2:距離 根據這兩個參數可以算出方向盤的方位 public void onValueChanged(int paramInt1, int paramInt2) {boolean isdistance = false;if (paramInt2 >= 50) { isdistance = true; int temp = Math.abs(paramInt1); if (paramInt1 >= 0) { if (temp > 50 && temp < 120) { direction = 'right'; if (!issend) {udpUtil.UdpSend(direction, Constant.port);issend = true;isstop = false; } } else if (temp < 40) { direction = 'forward'; if (!issend) {udpUtil.UdpSend(direction, Constant.port);issend = true;isstop = false; } } else if (temp > 140) { direction = 'back'; if (!issend) {udpUtil.UdpSend(direction, Constant.port);issend = true;isstop = false; } } else { direction = '指向不明確'; issend = false; } } else { if (temp > 50 && temp < 120) { direction = 'left'; if (!issend) {udpUtil.UdpSend(direction, Constant.port);issend = true;isstop = false; } } else if (temp < 40) { direction = 'forward'; if (!issend) {udpUtil.UdpSend(direction, Constant.port);issend = true;isstop = false; } } else if (temp > 140) { direction = 'back'; if (!issend) {udpUtil.UdpSend(direction, Constant.port);issend = true;isstop = false; } } else { direction = '指向不明確'; issend = false; } }} else { isdistance = false; direction = 'stop'; issend = false;}notice.setText(' getAngle:' + paramInt1 + 'n' + ' getPower:' + paramInt2 + 'n' + 'direction:' + direction);if (direction.equals('stop') && (!isstop)) { udpUtil.UdpSend(direction, Constant.port); isstop = true;} } }, 100L); seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) {seekbar.setProgress(50);isturn = false;String command = 'stop';udpUtil.UdpSend(command, Constant.port); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {int cucrrent = seekbar.getProgress();String command = 'hello';if (cucrrent < 20) { Toast.makeText(getActivity(), 'onProgressChanged' + '左轉', 0) .show(); if (!isturn) { Log.e(tag, 'onProgressChanged' + '左轉'); command = 'turnleft'; udpUtil.UdpSend(command, Constant.port); vibator.vibrate(100); isturn = true; }} else if (cucrrent > 80) { Toast.makeText(getActivity(), 'onProgressChanged' + '右轉', 0) .show(); if (!isturn) { Log.e(tag, 'onProgressChanged' + '右轉'); command = 'turnright'; udpUtil.UdpSend(command, Constant.port); vibator.vibrate(100); isturn = true; }} } }); } public void initData() { udpUtil = new UDPUtil(Constant.Address); vibator = (Vibrator) getActivity().getSystemService(Context.VIBRATOR_SERVICE); Thread.currentThread().setName(tag); } public void processClick(View v) { String command = 'hello'; switch (v.getId()) { case R.id.simple_rest: command = 'rest'; break; case R.id.simple_sit: command = 'sit'; break; case R.id.simple_stand: command = 'stand'; break; case R.id.simple_standinit: command = 'standinit'; break; case R.id.simple_standzero: command = 'standzero'; break; default: break; } udpUtil.UdpSend(command, Constant.port); } @Override public void onClick(View v) { processClick(v); } @Override public void onDestroy() { super.onDestroy(); vibator.cancel(); } // @Override // public boolean onTouch(View v, MotionEvent event) { // if (v.getId() == R.id.turns) { // String notice = ''; // switch (event.getAction()) { // case MotionEvent.ACTION_DOWN: // notice = 'ACTION_DOWN'+event.getX(); // int process=(int) Math.floor(event.getX()+0.5); // seekbar.setProgress(process); // break; // case MotionEvent.ACTION_UP: // notice = 'ACTION_UP'; // break; // case MotionEvent.ACTION_CANCEL: // notice = 'ACTION_CANCEL'; // break; // default: // break; // } // if (!TextUtils.isEmpty(notice)) { // Toast.makeText(getActivity(), notice, 0).show(); // } // } // return true; // }}

聲明一下:

1.上面的控件代碼(第一部分代碼)可以實際使用 2.第二部分代碼演示了控件的使用與處理 3.關于控件的實現原理和思想在代碼與注釋中已經詳細標記

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 一区二区少妇 | 爽爽影院在线免费观看 | 国产又粗又猛又爽又黄的视频软件 | 日本一卡二卡四卡无卡乱码视频免费 | 天天综合中文字幕 | 自拍三级| 国产97超碰| 香蕉久久网 | 国产精品999视频 | 97久久香蕉国产线看观看 | 久久亚洲a片com人成 | 国产精品高潮呻吟久久av野狼 | 成年无码av片 | 亚洲精品四区 | 午夜影皖精品av在线播放 | 国产精品无码专区在线播放 | 99色综合| 色偷偷中文字幕 | 国内精自线一二三四在线看 | 欧美人妖老妇 | 欧美大片aaaaa免费观看 | 国产精品美女一区二区 | 青青热久免费精品视频在线播放 | 欧美肥老妇视频 | 伊人久久视频 | 91欧美激情一区二区三区成人 | 亚洲精品一区二区三区高潮 | 一本大道熟女人妻中文字幕在线 | 在线 | 一区二区三区四区 | 国产乱码精品一区二区三区四川人 | 欧美成人一区二免费视频软件 | 狠狠色婷婷久久一区二区 | 无码aⅴ在线观看 | 中国少妇无码专区 | 又大又粗欧美黑人aaaaa片 | 麻豆国产网站入口 | 日韩欧美一区二区在线观看 | 免费h片在线观看 | 性一交一伦一理一色一情 | 久久av无码精品人妻系列试探 | 国产在线观看黄色 | 日批国产 | 偷拍亚洲另类 | 亚洲精品一区二区三区蜜桃久 | 久久精品丝袜高跟鞋 | 国产视频日本 | 女人精69xxx免费观 | 国产精品sm调教免费专区 | 国产98色在线 | 日韩 | 97成人精品 | 国产麻豆精品久久一二三 | 懂色粉嫩绯色av | 一 级做人爱全视频在线看 亚洲成a∨人片在线观看不卡 | 日韩久久不卡 | 久久无码人妻影院 | 九色免费视频 | 少妇丰满尤物大尺度写真 | av永久免费网站 | 国产精品欧美久久久久一区二区 | 在线免费视频你懂的 | 亚洲国产精华液网站w | 国产一级影院 | 久久久www成人免费毛片女 | 欧美色图1| 乌克兰少妇xxxhd做受 | 中文在线好最新版在线 | 天天做天天摸天天爽天天爱 | 国产乱视频在线观看 | 中文字幕亚洲一区二区va在线 | 狠狠色丁香婷婷久久综合 | 国产性―交―乱―色―情人 | 一级特黄少妇高清毛片 | 国产91丝袜在线播放0 | 国产成人无码aa精品一区 | 18成人片黄网站www | 国产情侣激情自拍 | 越南毛茸茸的少妇 | 粉嫩一区二区三区 | 99精品人妻无码专区在线视频区 | 樱桃视频一区二区三区 | 天堂av男人在线播放 | 成人午夜在线观看 | 久久婷婷丁香 | 丁香五香天堂网 | 粗大猛烈进出高潮视频大全 | 国产精品成人一区二区网站软件 | 大伊香蕉在线精品视频75 | 9999国产精品| 久久久久二区 | 91免费视频入口 | 国产av夜夜欢一区二区三区 | 国产成人毛片 | 亚洲天堂一级片 | 粉嫩av一区二区三区四区五区 | 久久久久久亚洲精品杨幂圣光 | 久久人人爽人人爽人人片ⅴ | 黄片毛片一级 | 九月婷婷人人澡人人添人人爽 | 欲色网站 | 夫妻啪啪呻吟x一88av | 精品久久久无码人妻中文字幕 | 国产精品igao视频网免费播放 | 无码国产69精品久久久孕妇 | 成人午夜视频精品一区 | 性色av无码一区二区三区人妻 | 国产一级视频免费观看 | 波多野结衣网址 | 最近更新2019中文字幕 | 国产在线视频资源 | 午夜视频在线观看国产 | 日本又黄又猛又爽免费视频 | 一级特黄aa | 黄色片视频在线观看 | 看全色黄大色大片免费 | 国产刺激的三3p交换视频 | 国产黄色片一级 | 青青国产精品 | 国产美女牲交视频 | 国产一二区视频 | 亚洲综合av色婷婷 | 艳妇臀荡乳欲伦交换日本 | 中文字幕无码不卡在线 | 国产精品9999久久久久仙踪林 | 97人人超碰国产精品最新 | 欧美精品1区2区 | 日本少妇久久 | 美女网站av | 亚洲精品国产精品乱码不66 | 在线免费观看一区 | 男女啪啪做爰高潮免费网站 | 国产av熟女一区二区三区 | 日韩成人精品一区二区 | 国产女人水真多18毛片18精品 | 中文字幕一区二区三 | 美女av免费观看 | 九九九精品视频 | 色噜噜视频 | 日本妞一区| 操操综合 | 久久亚洲精精品中文字幕早川悠里 | 日日碰狠狠躁久久躁96avv | 亚洲视频一二三四 | 国产在线观看精品 | 亚洲成aⅴ人在线观看 | 成人av网站大全 | 日韩欧美国产成人精品免费 | 欧洲亚洲国产精品 | 超碰97人人射妻 | 久久久久成人精品无码中文字幕 | 国产最新网址 | 在线网站免费观看入口 | 黄色大片av | 97精品国产露脸对白 | 精品久久久久久久人人人人传媒 | 久久国色 | 欧美精品一区二区三 | 久久天天躁狠狠躁夜夜97 | 欧美视频在线观看视频 | 少妇高潮伦 | 国产又黄又猛视频 | 热99在线视频 | 神秘马戏团在线观看免费高清中文 | 国产大屁股喷水视频在线观看 | 国产在线播放一区二区三区 | 亚洲天堂777| 欧美性大战久久久久xxx | 久久久久免费看黄a片app | 又黄又爽又色成人免费体验 | xx性欧美肥妇精品久久久久久 | 精品人妻va出轨中文字幕 | 草草影院最新网址 | 国内外成人在线视频 | 调教丰满的已婚少妇在线观看 | 日日摸天天爽天天爽视频 | 日本亚洲国产 | 亚洲超碰在线观看 | xvideos成人免费视频 | 97色偷偷色噜噜狠狠爱网站 | 天天操天天干天天操 | 亚洲综合影视 | 日产韩产麻豆h | 黄色特级一级片 | 国产精品伦一区二区在线 | 久久久久人妻精品一区三寸蜜桃 | 嫩草视频入口 | 无码专区天天躁天天躁在线 | 国产女女做受ⅹxx高潮 | 第四色影音先锋 | 99日韩精品| 毛片视频播放 | 黄污视频在线播放 | 一级a性色生活片久久毛片 一级a性色生活片久久毛片明星 | 国产精品无码一区二区在线看 | 国产三级久久 | 看毛片视频 | 亚洲男人在线天堂 | 无码av专区丝袜专区 | 无码av波多野结衣久久 | 老男人久久青草av高清 | 亚洲色图欧美在线 | 欧美波霸videosex极品 | 久久久久青草线综合超碰 | 丰满的少妇愉情hd高清果冻传媒 | 免费h片在线观看 | 久久男人av资源站 | 免费日本黄色网址 | 中文字幕35页 | 男女啪动最猛动态图 | 顶级少妇做爰视频在线观看 | 国产丝袜在线播放 | 伊人久久大香线蕉综合75 | 自拍偷拍视频网 | 交专区videossex农村 | 欧美一区二区三区色 | 91区人人爽人人都喜欢人人都有 | 青青青国产精品一区二区 | 51视频国产精品一区二区 | 一区二区视频观看 | 欧美午夜一区二区三区免费大片 | 成人深夜视频在线观看 | 亚洲蜜桃精久久久久久久 | 中文字幕一区二区三区四区久久 | 一级做a爰片性色毛片99高清 | 国产精品不卡一区二区三区 | 亚洲精品不卡无码福利在线观看 | 一二区视频 | 久久久黄色一级片 | 久久久久久综合网 | 精品水蜜桃久久久久久久 | 狠狠色丁香婷婷综合尤物 | 中文字幕一区二区三区四区五区 | 人妻无码中文字幕免费视频蜜桃 | 丰满的少妇愉情hd高清果冻传媒 | 精品国产欧美一区二区三区不卡 | 成人情趣片在线观看免费 | 中国浓毛少妇毛茸茸 | 国产l精品国产亚洲区在线观看 | 日本wwwxxxx| 久久99热狠狠色精品一区 | 中文欧美日韩 | 日本xxxx少妇高清hd | 成人免费视频网站在线观看 | 777一区二区 | 久久亚洲精品中文字幕 | 亚洲人成人 | 日韩欧美xxx | 亚洲国产精品免费在线观看 | 欧美激情乱人伦 | 黄av资源 | 激情综合色五月六月婷婷 | 男人天堂视频网站 | 国产精品看高国产精品不卡 | 欧美色aⅴ欧美综合色 | 欧美福利社 | 疯狂做受xxxx高潮不断 | 无遮挡边摸边吃奶边做视频 | 毛片的视频 | 夜夜动漫 | 亚州男人天堂 | 狠狠色综合网 | www在线观看国产 | 四虎影库永久地址 | 天天干天天碰 | 天天色天天射天天干 | 国产精品99久久免费观看 | 88av视频| 欧美片网站yy | 黄色av免费在线播放 | 亚洲国产日韩欧美一区二区三区 | 永久91嫩草亚洲精品人人 | 一区二区不卡视频 | 中文永久免费观看 | 久久久久毛片 | 婚后打屁股高h1v1调教 | 强行18分钟处破痛哭av | 欧美一卡二卡在线 | 中文文字幕文字幕肉岳 | 第一页国产 | 少妇与大狼拘作爱性a | 日韩人妻无码中文字幕视频 | 亚洲精品成人在线视频 | 国产精品av久久久久久久久久 | 一区二区三区四区免费 | 久久免费看片 | 日韩av资源在线 | 国产高颜值大学生情侣酒店 | 麻豆视频在线观看免费 | 丁香美女社区 | 日本综合在线 | 国产精品久久久久久久一区二区 | 91麻豆精产国品一二区灌醉 | 欧美日本韩国一区二区三区 | 在线资源av | 久热中文字幕无码视频 | 性生活在线视频 | 99国产精品国产精品九九 | 欧美肥妇视频 | 久久91精品国产 | 女教师痴汉调教hd中字 | 人善交video另类hd国产片 | 亚洲成av人片一区二区三区 | 久久婷婷五月综合色国产 | 欧美一级片在线视频 | 国产三级欧美三级日产三级99 | 久久不卡区 | 麻豆成人久久精品综合网址 | 国产又黄又猛又粗又爽的a片动漫 | 国产精品丝袜久久久久久久不卡 | 色拍拍欧美视频在线看 | ass亚洲日本嫩体私拍ass | 国产偷国产偷亚洲高清人白洁 | 亚洲一区免费在线观看 | 操欧美女| 嫩草yy| 综合久久婷婷 | 国产人妖在线 | 免费se99se | 久久国产精99精产国高潮 | 爽欲亲伦97部 | 亚洲ww不卡免费在线 | 饥渴丰满的少妇喷潮 | 啪啪国产精品 | 黄色网战在线观看 | 国产精品免费入口 | 福利一区视频 | 91高清视频 | 日日噜噜夜夜狠狠久久av小说 | 996久久国产精品线观看 | 国内少妇毛片视频 | av小说天堂网 | 国产精品视频123 | 成人激情视频网 | 久久久免费观看视频 | 中国毛片基地 | 国产看黄网站又黄又爽又色 | 色橹橹欧美在线观看视频高清 | 成人羞羞视频在线看网址 | 精品少妇一区二区30p | 精品人妻av区 | 亚洲三级精品 | 精品视频国产香蕉尹人视频 | av男人的天堂在线观看国产 | 国产一级揄自揄精品视频 | 国产在线视频卡一卡二 | 国产又黄又爽 | 99热国 | 日日干夜夜干 | 欧美在线v | 宅女噜噜66国产精品观看免费 | 青草福利在线 | 97久久久久人妻精品区一 | 国产成人av一区二区在线观看 | www.com.日本一级 | 午夜少妇拍拍视频在线观看 | 国产精品色综合 | 免费视频一区 | 日本免费黄色小视频 | 男女作爱免费网站 | 国产区小视频 | 免费网站看v片在线18禁无码 | 国产一区二区三区成人欧美日韩在线观看 | 免费看黄色一级大片 | 四虎精品8848ys一区二区 | 国产中文字幕久久 | 国产午夜片 | 成年人看的毛片 | 麻豆国产va免费精品高清在线 | 曰韩无码av一区二区免费 | 久久伊人色av天堂九九小黄鸭 | 色www视频永久免费 国产欧美日韩专区发布 | 18禁美女裸身无遮挡免费网站 | a级黄色录像 | 伊人久久大香线蕉av最新 | 天天舔天天插 | 国产精成人品 | 国产一区二区在 | 亚洲成人免费在线观看 | 国产成人无码a区在线观看导航 | 亚洲精品午夜国产va久久成人 | 亚州激情 | 性欧美精品动漫片 | 操人小视频 | 日韩人妻中文无码一区二区七区 | 在线观看视频福利 | 男女激情视频免费观看刺激 | 国产伦理av| 免费视频网站在线观看入口 | 欧美日韩爱爱 | 欧美高清激情brazzers | 大战肉丝少妇在线观看 | av爱爱网站 | 久久久wwww | 和嫩模做爰在线播放 | 免费色网站| 午夜dj高清免费观看视频 | 日本一区二区三区视频免费看 | 国产喷水在线 | 亚洲精品无amm毛片 亚洲精品无码成人aaa片 | 男人猛躁进女人免费视频夜月 | 特黄做受又粗又大又硬老头 | 外国a级片 | 中文字幕第| 99久久99久久久精品齐齐 | 少妇视频一区 | 久久在线视频精品 | 二区免费视频 | 国产黄色观看 | 国产一级片毛片 | 亚洲日韩一区精品射精 | 毛片无码国产 | 无码人妻一区二区三区在线视频 | 看全色黄大色黄女片18 | 神马午夜一区二区 | 中国一级免费毛片 | 日本大尺度床戏揉捏胸 | 亚洲午夜精品a片久久www慈禧 | 亚洲视频在线看 | 久久综合av色老头免费观看 | 深夜网站在线观看 | 性猛交富婆╳xxx乱大交麻豆 | 国产嫩草在线观看 | 一级片视频免费看 | 国产精品99久久久久久夜夜嗨 | 日韩精品久久久久久免费 | 刘亦菲国产毛片bd | 加勒比色老久久综合网 | 日韩欧美中文字幕一区二区 | 日本精品4080yy私人影院 | 欧美一区二区公司 | 国产成人精品一区二区三区在线观看 | 久久99操| 久久99精品一区二区蜜桃臀 | 香港三级日本三级 | 51免费看成人啪啪片 | 吃奶摸下的激烈视频 | 狠狠噜狠狠狠狠丁香五月 | 免费体验区试看120秒 | 人人妻人人澡人人爽秒播 | 午夜在线小视频 | 黄色理论片 | 美女隐私黄www网站免 | 亚洲精品一区二区三区不卡 | av人摸人人人澡人人超碰妓女 | 久久久久网址 | 在线观看成年人网站 | a级大片免费看 | 欧美日韩大片 | 丰满少妇高潮惨叫久久久 | 日本www视频在线观看 | 91精品国产欧美一区二区 | 操穴影院 | 一本色道久久综合亚洲精品按摩 | 天天看黄色片 | 亚洲第一综合天堂另类专 | 亚洲精品久久久久久动漫器材一区 | 欧美日韩午夜群交多人轮换 | 全部免费毛片在线播放高潮 | 国产日韩精品中文字无码 | 中文字幕亚洲一区二区va在线 | 欧美肥臀大乳一区二区免费视频 | 少妇高潮喷水久久久久久久久久 | 我不卡av | 波多野结衣精品一区二区三区 | 亚洲国产无 | 91九色麻豆 | 91av看片| 自拍成人福利视频免费在线观看 | 在线丨暗呦小u女国产精品 在线爽 | 黑人玩弄出轨人妻松雪 | 日韩三区在线观看 | 色诱久久av | 国产精品久久婷婷六月丁香 | 国内精品久久久久精免费 | 免费毛片在线 | 精品无码午夜福利理论片 | 国产亚洲人成网站在线观看 | 人人爽人人爽人人片av亚洲 | 欧美毛茸茸 | 欧美少妇xxxxx | av成人在线免费观看 | 国产玖玖视频 | www.97色| 69精品人人人人 | 亚洲一区和二区 | 亚洲色图视频在线观看 | 美女久久久久久久久 | 日韩免费一二三区 | 欧美性xxxxxxxxx | 日韩操操 | 太深太粗太爽太猛了视频免费观看 | 先锋资源久久 | 国产成人看片 | 日韩综合精品 | 老司机67194精品线观看 | 69视频在线观看 | 无码人妻av一区二区三区波多野 | 国产美女永久无遮挡 | 久久国产尿小便嘘嘘97 | 亚洲熟妇色自偷自拍另类 | 五月天丁香综合久久国产 | 性感av在线| 精品欧美h无遮挡在线看中文 | 四虎影视永久免费观看在线 | 久久综合色网 | 日韩人妻无码精品久久 | 裸体性做爰免费视频网站 | 各种各样少妇avbbb搡 | 免费看成人aa片无码视频吃奶 | 丁香激情综合久久伊人久久 | 无码乱人伦一区二区亚洲 | 亚洲人体视频 | 日本成人在线视频网站 | 99久久精品费精品国产风间由美 | 古代性色禁片在线播放 | 夜色福利院在线观看免费 | 看国产一级毛片 | 全部孕妇毛片丰满孕妇孕交 | 69国产精品 | 九九色影院 | 成人羞羞网站 | 中文字幕在线精品中文字幕导入 | 粉嫩粉嫩的虎白女18在线软件 | 麻豆精品国产传媒av | 又黄又爽又色的视频 | 欧美日韩性生活 | 国产人与禽zoz0性伦免费 | 蜜臀av免费一区二区三区 | 丰满人妻被黑人猛烈进入 | 中文字幕免费在线视频 | 免费精品在线观看 | 国产美女91| 亚洲视频中文 | 国产成人在线综合 | 日本久久久久亚洲中字幕 | 91国在线| 午夜福利123 | 羞羞网站在线看 | 精品国产av 无码一区二区三区 | 色8久久人人97超碰香蕉987 | 国产精品久久久久久亚洲色 | 中文字幕第100页 | 国产无精乱码一区二区三区 | 少妇一级淫片免费放 | 国产一区中文字幕 | 99精品国产99久久久久久51 | 亚洲成色www久久网站 | 国产一区日韩 | 2019最新中文字幕在线观看 | 国产乱淫精品一区二区三区毛片 | 大尺度av在线 | 精品欧美一区二区三区久久久 | 91视频污在线观看 | www.av在线播放| 高清国产亚洲精品自在久久 | 黑人巨大精品欧美一区二区奶水 | 伊人日韩 | 伊人www22综合色 | 在线观看三区 | 无码国产成人午夜电影在线观看 | 国产在线精品一区二区不卡麻豆 | 亚洲春色在线观看 | 99免费精品 | 女同一区二区免费aⅴ | 国产精品亚洲一区二区无码 | 日韩一级色片 | 亚洲美女又黄又爽在线观看 | 丰满老女人乱妇dvd在线播放 | 亚洲精品久久久打桩机小说 | 91在线勾搭足浴店女技师 | 亚洲欧洲中文字幕 | 少妇啊灬啊别停灬用力啊房东 | 国产在线伊人 | 香港三日本三级少妇66 | 黄色小视频在线播放 | 色狠狠久久aa北条麻妃 | 五月精品在线 | 又爽又黄无遮挡高潮视频网站 | 欧美日韩亚洲视频 | 草女人视频 | 国产成人中文字幕 | 2017天天干天天射 | 69综合| 一区二区三区四区免费视频 | 99久久婷婷国产综精品喷水 | 日本一级淫片 | 天天综合网永久 | 四虎网址大全 | 夜色一区| 午夜剧场免费视频 | 人人免费操| 精品国精品国产自在久国产应用 | 国产成人精品av久久 | 最新中文字幕在线观看 | 日韩精品―中文字幕 | 91视频爱爱 | 国产性生交xxxxx无码 | 国产精品久久久久久久免费看 | 国产色爽| 伊人网站 | 大白肥妇bbvbbw高潮 | 殴美一级黄色片 | 综合久久激情 | 91久久精品www人人做人人爽 | 永久555www成人免费 | 五月天精品一区二区三区 | 蜜臀免费av | 97精品人妻系列无码人妻 | 久久五月天婷婷 | 97超碰免费 | 亚洲 中文 欧美 日韩 在线 | 手机av资源| 激情国产av做激情国产爱 | 美女福利视频 | 国产又粗又猛又爽又黄的三级视频 | 国产精品伦一区二区三级视频 |