日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Gesture 手势研究

發布時間:2023/12/20 Android 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Gesture 手势研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

怎么理解一個手勢,就是在屏幕上,手畫一個符號就是一個手勢,它代表了用戶的一個意圖,也就是用戶希望程序做點什么,一般程序大多數是通過按鈕,按鈕上有對應的文字,這樣進行人機交互,而手勢也是很多地方會使用到,而常用的手勢好像下拉刷新,用戶希望列表內容下拉一下就有新的信息,雙指縮放等等,一般這些手勢都是跟對應的view綁定起來,而今天介紹的都是方法是可以不綁定view,直接在界面上畫一個手勢就可以人機交互.實現的代碼可以在github上的Demo源碼了解.

這篇手勢研究會大概分三部分
1. 手勢Gesture使用方式
2. 展示手勢開發的步驟及代碼實現
3. 分析Gesture的源碼及原理


使用的方式

首先我們需要把用戶需要使用到的手勢提前記錄下來,準備一些手勢的樣本,在app安裝時隨著資源文件或者下載等方式存儲到用戶的手機里,當用戶在app畫一個手勢時,就去匹配手勢樣本,當時樣本最吻合時,就知道用戶的意圖,采取執行對應的功能,這樣就是個很好的人機交互的方式.

從上文使用方式,我們大概猜想到,我們需要一個東西,用來管理和讀取我們已經存儲的手勢樣本,我們還要需要這個東西可以設別用戶的手勢跟我們已經存儲的手勢進行匹配.還有,我們需一個東西在app的界面上記錄用戶的手勢,沒錯,兩個東西都存在,就是GestureLibrary和GestureOverlayView,這兩個類就是手勢開發里使用的主要兩個類,通過這兩個類,我們就可以實現手勢開發的所有功能,是不是很簡單.

總結一下:
1. 提前準備好手勢樣本,在安裝時加入到資源文件或者安裝后網絡下載.
2. 需要使用手勢的界面里使用GestureOverlayView記錄用戶的手勢,
3. 使用GestureLibrary對象對用戶的手勢進行監聽和匹配,找到用戶手勢的意圖,執行對應的功能


步驟及代碼實現

  • 手勢庫的初始化
    GestureLibrary gLib=GestureLibraries.fromFile(手勢庫文件);
    gLib.load();

    這個過程是讀取已經存儲手勢樣本文件,構造出GestureLibrary實例的過程,需要第一步實現.

  • 對用戶手勢的監聽
    GestureOverlayView.addOnGesturePerformedListener()

  • 使用GestureLibrary對用戶的手勢進行匹配
    recognize(Gesture gesture)

  • 循環遍歷返回的ArrayList對象,使用Prediction的score來匹配手勢的相似度,
    score越高代表越匹配.
    Prediction.score()
  • 這里就是手勢開發的實現的全部內容,但是作為一個程序猿,需要知其然知其所以然,就要對源碼進行解剖.


    原理

    手勢的結構

    手勢是用戶在屏幕上畫的符號,那么手勢可以簡單的一筆筆畫,例如一個方向的箭頭(>),也可以多筆劃,很復雜,例如一個文字.這些都手勢,所以我們就知道

    手勢是由一個或者多個筆畫組成

    學過數學的我們都到線是由點組成的,所以

    一個手勢筆畫是由多個時間連續的點組成

    一個點意味著什么呢,它會固定在屏幕的某個地方,還需要時間連續不斷,所以

    手勢中的點包含坐標X軸和Y軸,還有時間戳

    所以我們就很容易了解手勢對應的文件了

    GesturePoint : 是手勢筆劃中的一個點,包含X軸,Y軸的坐標,還有時間戳.
    GestureStroke : 手勢筆劃,可以理解為線,由多個點組成的.
    Gesture : 手勢,代表用戶的一個手勢,可以由一個或者多個手勢筆劃組成.
    GestureStore 手勢倉庫,里面存儲了多個手勢樣本


    手勢的使用

    使用手勢的過程都是先從GestureLibrary開始,那么看看GestureLibrary的關系圖.

    從圖中看,GestureLibrary的實現有兩種,一個File的實現,另外一個是由資源Resource實現,說明我們的手勢庫可有兩個方向可以構造.

    然后看回GestureLibrary的源碼

    public abstract class GestureLibrary {protected final GestureStore mStore;... }

    里面只有一個對象,而所有的方法都是由這個對象實現,也就是GestureLibrary其實是GestureStore的代理類,而真正的功能其實是在GestureStore里.

    GestureStore的內容很多,首先看到的是頂部注釋里有手勢文件的結構內容

    Nb.bytesJava typeDescription
    Header
    2 bytesshort
    4 bytesint
    Entry
    X bytesUTF String
    4 bytesint
    Gesture
    8 byteslong
    4 bytesint
    Stroke
    4 bytesint
    Point
    4 bytesfloat
    4 bytesfloat
    8 byteslong

    從源碼可以知道,GestureStore的文件格式主要組成部分,也就是GestureLibrary讀取文件的格式內容,也可以考慮根據這樣的格式來進行加密,假如用手勢來做成一個手寫輸入法的軟件,那么手勢庫一定是龐大的內容庫,而且根據所有人不同的手寫方式,這樣的手勢庫一定很有價值,至于怎樣加密來保護這些價值,就可以考慮每個手勢的內容進行拆分來分別存儲和采取不同的加密方式加密.

    然后我們再看Store對手勢的讀取保存

    讀取和保存

    讀取第一步GestureLibraries中讀取手勢文件

    public boolean load() {...mStore.load(new FileInputStream(file), true);... }

    第二步store獲取文件流

    public void load(InputStream stream, boolean closeStream) throws IOException {DataInputStream in = null;try {in = new DataInputStream((stream instanceof BufferedInputStream) ? stream :new BufferedInputStream(stream, GestureConstants.IO_BUFFER_SIZE));...// Read file format version numberfinal short versionNumber = in.readShort();switch (versionNumber) {case 1:readFormatV1(in);break;}...}

    第三步從文件流里讀取文件名和手勢對象(Gestire),然后存進HashMap里

    /*** 讀取文件數據** @param in* @throws IOException*/private void readFormatV1(DataInputStream in) throws IOException {...for (int i = 0; i < entriesCount; i++) {// Entry namefinal String name = in.readUTF();// Number of gesturesfinal int gestureCount = in.readInt();final ArrayList<Gesture> gestures = new ArrayList<Gesture>(gestureCount);for (int j = 0; j < gestureCount; j++) {final Gesture gesture = Gesture.deserialize(in);gestures.add(gesture);classifier.addInstance(Instance.createInstance(mSequenceType, mOrientationStyle, gesture, name));}namedGestures.put(name, gestures);} }

    讀取的方式是從文件流里獲取到手勢數據,從Gesture的deserialize方法可以知道,每一步的解析都是按照文件存儲格式一步步獲取數據,當然,存儲也是反向一步步保存成文件流格式存儲的.


    手勢的匹配

    這里我們再好好探求手勢的設別匹配,也是我認為手勢源碼之中最有研究價值的一塊.當把代碼解析一下就會發現其實很多功能的本質就是數學問題,而這里的手勢匹配的本質就是數學的線性代數.

    首先從匹配的方法入手,GestureStore.recognize()方法開始看

    public ArrayList<Prediction> recognize(Gesture gesture) {//實例Instance instance = Instance.createInstance(mSequenceType, mOrientationStyle, gesture, null);//歸類return mClassifier.classify(mSequenceType, mOrientationStyle, instance.vector);}

    recognize()方法里有兩個核心,一個是根據手勢對象(Gesture)來構造一個實例,二是通過mClassifier對象的classify()方法來返回一個Prediction數組.

    首先從Instance來研究.

    static Instance createInstance(int sequenceType, int orientationType, Gesture gesture, String label) {float[] pts;Instance instance;if (sequenceType == GestureStore.SEQUENCE_SENSITIVE) {//單筆手勢//得到一個連續點的數組pts = temporalSampler(orientationType, gesture);instance = new Instance(gesture.getID(), pts, label);instance.normalize();} else {pts = spatialSampler(gesture);instance = new Instance(gesture.getID(), pts, label);}return instance; }

    從Instance的構造方法看是需要三個參數,id,連續點數組,和標簽label.所以temporalSampler()和spatialSampler()都是把手勢gesture轉換為一個數組.

    但是為什么需要把一個手勢轉換為一個數組呢,我們都知道一條線是由無數個點,假如點太多就帶來很大量的計算工作,所以我們采用生物學的抽樣法.每隔固定的間隔就取一個樣本,這樣就減少計算量,但是太少的話就會樣本集合與真實的差別就很大,所以我們去了一個適合的量作為樣本數量.

    private static final int SEQUENCE_SAMPLE_SIZE = 16;

    我們取了樣本數量為16,把任何一個手勢筆劃轉換為均勻分割的16個點來代替.

    轉換的方法就是GestureUtils.temporalSampling()

    /*** Samples a stroke temporally into a given number of evenly-distributed* points.* 代表均勻分布的點的一系列數字作為時間取樣的筆劃例子* 把一個手勢的筆劃(連續點的線)轉化為離散的點** @param stroke the gesture stroke to be sampled* @param numPoints the number of points 取樣點的數量(越多越精確,越多消耗性能越大)* @return the sampled points in the form of [x1, y1, x2, y2, ..., xn, yn]*/public static float[] temporalSampling(GestureStroke stroke, int numPoints) {//遞增量,手勢筆畫的長度除以需要切開的段數(離散點數 - 1)final float increment = stroke.length / (numPoints - 1);//向量長度int vectorLength = numPoints * 2;//向量float[] vector = new float[vectorLength];//因為向量就是取樣點的內容,包含x,y坐標,所以是取樣點的兩倍float distanceSoFar = 0;float[] pts = stroke.points;//上次最新的坐標float lstPointX = pts[0];float lstPointY = pts[1];int index = 0;//當前坐標float currentPointX = Float.MIN_VALUE;float currentPointY = Float.MIN_VALUE;vector[index] = lstPointX;index++;vector[index] = lstPointY;index++;int i = 0;int count = pts.length / 2;while (i < count) {//默認值,也是第一個運行時執行的if (currentPointX == Float.MIN_VALUE) {i++;if (i >= count) {break;}currentPointX = pts[i * 2];currentPointY = pts[i * 2 + 1];}//坐標偏移量float deltaX = currentPointX - lstPointX;//兩個坐標點的X軸差值float deltaY = currentPointY - lstPointY;//兩個坐標點的Y軸差值//deltaX 和 deltaY的平方和的平方根(根據三角函數,)也就是兩個點的直線距離float distance = (float) Math.hypot(deltaX, deltaY);//根據三角函數定理,X2 + Y2 = Z2if (distanceSoFar + distance >= increment) {//當兩個點(疊加上次循環的距離)的距離大于遞增量(根據numPoints來確定的離散點的間隔距離)時執行//比例float ratio = (increment - distanceSoFar) / distance;float nx = lstPointX + ratio * deltaX;float ny = lstPointY + ratio * deltaY;vector[index] = nx;index++;vector[index] = ny;index++;lstPointX = nx;lstPointY = ny;distanceSoFar = 0;} else {//當兩個點的距離少于間隔距離//緩存當前的點lstPointX = currentPointX;lstPointY = currentPointY;//當前點默認最小值currentPointX = Float.MIN_VALUE;currentPointY = Float.MIN_VALUE;//疊加記錄兩點距離distanceSoFar += distance;}}//添加剩下最后一個點的坐標for (i = index; i < vectorLength; i += 2) {vector[i] = lstPointX;vector[i + 1] = lstPointY;}return vector;}

    其中就使用到數學的三角函數公式,通過兩個點的坐標(x,y)來計算兩點距離.

    回到Instance的類

    //時間取樣private static float[] temporalSampler(int orientationType, Gesture gesture) {//離散點float[] pts = GestureUtils.temporalSampling(gesture.getStrokes().get(0), SEQUENCE_SAMPLE_SIZE);//重心點float[] center = GestureUtils.computeCentroid(pts);//計算弧度值(計算第一個點與重心點形成的角度的弧度值)float orientation = (float) Math.atan2(pts[1] - center[1], pts[0] - center[0]);//???float adjustment = -orientation;if (orientationType != GestureStore.ORIENTATION_INVARIANT) {int count = ORIENTATIONS.length;for (int i = 0; i < count; i++) {float delta = ORIENTATIONS[i] - orientation;if (Math.abs(delta) < Math.abs(adjustment)) {adjustment = delta;}}}//根據中心點平移,平移到中心點在原點上GestureUtils.translate(pts, -center[0], -center[1]);//根據調整出來的adjustment旋轉數據GestureUtils.rotate(pts, adjustment);return pts;}

    除計算adjustment的方法還沒理解透,歡迎讀者可以繼續跟我交流

    這個方法主要計算出手勢的間隔點數組,然后平移到坐標原點上和調整角度,輸出調整后的數組.就大概完成這個功能內容.接著我們繼續看下個功能點classify.

    mClassifier這個對象的類似Learner,就是用于實現匹配功能的類,而classify的實現類在InstanceLearner這個類里,那么到底一個這么重要的方法classify到底做了什么呢?

    /*** 歸類** @param sequenceType* @param orientationType* @param vector* @return*/@OverrideArrayList<Prediction> classify(int sequenceType, int orientationType, float[] vector) {//預測對象數組ArrayList<Prediction> predictions = new ArrayList<Prediction>();//實例數組ArrayList<Instance> instances = getInstances();int count = instances.size();//便簽找到得分值的mapTreeMap<String, Double> label2score = new TreeMap<String, Double>();for (int i = 0; i < count; i++) {Instance sample = instances.get(i);//保證數據長度一致if (sample.vector.length != vector.length) {continue;}//距離(與手勢的差距)double distance;if (sequenceType == GestureStore.SEQUENCE_SENSITIVE) {distance = GestureUtils.minimumCosineDistance(sample.vector, vector, orientationType);} else {distance = GestureUtils.squaredEuclideanDistance(sample.vector, vector);}//權重(權重越大,代表越匹配)double weight;if (distance == 0) {//代表完全吻合weight = Double.MAX_VALUE;} else {//取distance的倒數weight = 1 / distance;}Double score = label2score.get(sample.label);if (score == null || weight > score) {label2score.put(sample.label, weight);}}for (String name : label2score.keySet()) {double score = label2score.get(name);predictions.add(new Prediction(name, score));}//排序Collections.sort(predictions, sComparator);return predictions;}

    這個類主要做的事情就是對用戶的手勢和所有的已存的手勢進行匹配,計算出相識度的權重,然后我們就可以根據這個權重來知道用戶的手勢大概是什么意思.所以這個方法最重要的內容是計算權重的方法,GestureUtils的minimumCosineDistance()和squaredEuclideanDistance()

    /*** Calculates the "minimum" cosine distance between two instances.* <p>* 最小的余弦距離** @param vector1* @param vector2* @param numOrientations the maximum number of orientation allowed* @return the distance between the two instances (between 0 and Math.PI)*/static float minimumCosineDistance(float[] vector1, float[] vector2, int numOrientations) {final int len = vector1.length;//???float a = 0;float b = 0;for (int i = 0; i < len; i += 2) {a += vector1[i] * vector2[i] + vector1[i + 1] * vector2[i + 1];//(x1 * x2 + y1 * y2)疊加所有坐標b += vector1[i] * vector2[i + 1] - vector1[i + 1] * vector2[i];//(x1 * y2 + y1 * x2)疊加所有坐標}if (a != 0) {final float tan = b / a;//角度final double angle = Math.atan(tan);if (numOrientations > 2 && Math.abs(angle) >= Math.PI / numOrientations) {return (float) Math.acos(a);} else {final double cosine = Math.cos(angle);final double sine = cosine * tan;return (float) Math.acos(a * cosine + b * sine);}} else {return (float) Math.PI / 2;}}

    minimumCosineDistance()方法從注釋來說就是實現最小的余弦距離,把用戶手勢點和一個樣本的手勢點進行疊加計算,

    /*** Calculates the squared Euclidean distance between two vectors.** @param vector1* @param vector2* @return the distance*/static float squaredEuclideanDistance(float[] vector1, float[] vector2) {float squaredDistance = 0;int size = vector1.length;for (int i = 0; i < size; i++) {//坐標點的x軸或y軸差距float difference = vector1[i] - vector2[i];squaredDistance += difference * difference;}return squaredDistance / size;}

    squaredEuclideanDistance 的方法就是計算兩點差距,然后平方和再除以數量.

    minimumCosineDistance()和squaredEuclideanDistance()的實現是知道,但是為什么要這樣計算,和使用哪些數學原理還需繼續深究,歡迎讀者跟我進行探究.

    到這里Gesture的初步研究就差不多了,假如讀者需要安卓源碼的部分翻譯,可以點擊這里獲取.
    假如讀者需要閱讀GestureDemo可以點擊這里,假如讀者需要跟我交流github有郵箱聯系方法

    本文信息:
    作者:StevenHe
    博客:簡書 - 可樂
    CSDN:可樂的小屋
    工作郵箱:steven2947@163.com

    請尊重原創作者,復制引用時保留作者信息

    總結

    以上是生活随笔為你收集整理的Android Gesture 手势研究的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久久久亚洲精品男人的天堂 | 国产精品久久久区三区天天噜 | 亚洲电影久久久 | 精品国产一区二区三区日日嗨 | 精品亚洲国产视频 | 欧洲精品亚洲精品 | 国产精品美女网站 | 国产激情电影综合在线看 | 欧美日韩在线观看一区二区 | 日韩中文字幕视频在线观看 | 久久久久国产精品免费免费搜索 | 99精品视频在线观看 | 欧美成人tv | 欧美成人手机版 | 91麻豆视频| 欧美一区影院 | 日韩精品久久久 | 91成人精品一区在线播放 | 国产精品免费小视频 | 日韩高清精品一区二区 | 香蕉97视频观看在线观看 | 久久99最新地址 | 国产综合精品久久 | 日韩精品一区二区三区在线视频 | 深爱激情五月综合 | 国产免费一区二区三区最新6 | 麻豆91在线 | 国产精品毛片一区 | 久久精美视频 | 99r精品视频在线观看 | 欧美性色综合 | 天天射综合网视频 | 综合久久网站 | www.少妇| 国产手机在线精品 | av电影免费在线 | 丁香5月婷婷 | 正在播放国产精品 | 一区二区视频欧美 | 在线观看一级片 | 在线观看视频在线观看 | 国产美女免费 | 91黄色小网站 | 日韩毛片在线播放 | 成人黄色一级视频 | 一本一本久久a久久精品牛牛影视 | 五月婷婷黄色 | 97国产大学生情侣白嫩酒店 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 久久99久久99精品免视看婷婷 | 日韩城人在线 | 成人黄色片免费看 | 久99久在线视频 | 亚洲精品成人av在线 | 久久综合免费视频影院 | 国产v欧美 | 一区中文字幕在线观看 | 亚洲婷久久 | 国产一区二区高清视频 | 欧美性大胆| 夜夜躁天天躁很躁波 | 天天摸夜夜添 | 三上悠亚一区二区在线观看 | 国产精品久久久久久久久蜜臀 | 麻豆 free xxxx movies hd | 福利久久久 | 激情欧美在线观看 | 91精品国产91久久久久久三级 | 国产高清免费在线观看 | av不卡中文字幕 | 天天色天天骑天天射 | aⅴ精品av导航 | 中文字幕在线观看网址 | 久久6精品 | 黄网站免费大全入口 | 欧美性色黄 | 一级黄色免费 | 又爽又黄在线观看 | 麻豆精品视频在线观看免费 | 亚洲乱码在线 | 丁香激情综合 | 激情综合国产 | 一区二区三区在线不卡 | 综合天天 | 日本久久中文 | 国产精品字幕 | 色婷婷www| 九色视频自拍 | 中文字幕乱码日本亚洲一区二区 | 久久福利国产 | 日韩视频1区 | 欧美一级电影 | 国产中文字幕网 | 四川妇女搡bbbb搡bbbb搡 | 久久一区二区三区超碰国产精品 | 在线观看视频一区二区 | 欧美色精品天天在线观看视频 | 国产精品va在线 | 久久免费视频网站 | 91视频在线观看大全 | 国产1区在线 | 91麻豆免费版 | 亚洲国产视频a | 五月天婷婷丁香花 | 免费在线观看污 | 99在线高清视频在线播放 | 啪啪免费观看网站 | 亚洲一级免费电影 | 久久综合色综合88 | 特黄免费av| 国产91精品看黄网站在线观看动漫 | 天天爽夜夜爽人人爽曰av | 最近中文字幕mv免费高清在线 | 免费看一级黄色大全 | 国产精品白丝jk白祙 | 毛片的网址 | 免费视频一区二区 | 亚洲日韩中文字幕在线播放 | www.五月天婷婷 | 超碰在线cao | 美女视频免费一区二区 | 国产黄网站在线观看 | 丁香九月激情综合 | 欧美精品久久久久久久久免 | 日韩欧美xxxx | 成人黄大片 | av电影中文字幕 | 超碰av在线播放 | 九九热精 | 三三级黄色片之日韩 | 国产成人精品av久久 | 91激情视频在线观看 | 天天做天天爱夜夜爽 | 免费在线观看不卡av | 菠萝菠萝在线精品视频 | 免费看片成人 | 国产福利精品视频 | 最新精品视频在线 | 亚洲精品午夜久久久久久久 | 波多野结衣在线观看一区 | 亚洲黄a | 麻豆播放| 久久99精品久久只有精品 | 久久久久久黄色 | 91一区啪爱嗯打偷拍欧美 | 在线影院 国内精品 | 日日夜夜免费精品视频 | 久久久久久久久久久久久9999 | 成年美女黄网站色大片免费看 | 欧美午夜寂寞影院 | 国产一区二区中文字幕 | 国产精品久久久久久久久久三级 | 亚洲国产中文在线 | 日韩最新在线视频 | 日日夜夜天天综合 | 午夜视频在线观看网站 | 日韩丝袜 | 在线观看网站黄 | 久久精品美女视频网站 | 99久久精品视频免费 | 日韩精品免费在线观看视频 | 欧美性爽爽| 国产一级不卡毛片 | 欧美人体xx | 天天干,天天射,天天操,天天摸 | 午夜精品视频一区二区三区在线看 | 欧美精品xxx | 麻豆mv在线观看 | 中文字幕大全 | 91色在线观看 | 亚洲丝袜一区 | 九九激情视频 | 色小说av | 久久久久久国产精品亚洲78 | 色干综合 | 黄污视频网站大全 | 天天干,天天插 | 欧美日韩高清在线一区 | 91夫妻视频 | 国产精品久久久久久五月尺 | 久久久久日本精品一区二区三区 | 91视频在线观看下载 | 色在线国产 | 极品嫩模被强到高潮呻吟91 | 欧美午夜精品久久久久久浪潮 | 黄网站app在线观看免费视频 | 国产99久久久国产精品免费二区 | 手机看片99| 国产精品综合久久久久久 | 精品在线不卡 | 国产精品久久久久久久久久免费 | 国产成人黄色片 | 激情视频一区二区三区 | 亚洲国内精品在线 | 久久99精品波多结衣一区 | 91pony九色丨交换 | 日韩女同一区二区三区在线观看 | 黄色app网站在线观看 | 日韩av在线高清 | 精品免费观看视频 | 成人在线免费观看网站 | 激情丁香5月 | 丁香花在线视频观看免费 | 高清视频一区二区三区 | 麻豆视频国产精品 | 一区二区三区四区免费视频 | 亚洲国产欧洲综合997久久, | 欧美性成人 | 久久久网页 | 久久久精品 一区二区三区 国产99视频在线观看 | 国产精品久久久久久久电影 | 亚洲 欧洲av | 中文字幕网站 | 日韩精品一区在线播放 | 日韩在线观看视频网站 | 色在线免费 | 91中文在线| 久草视频在线免费看 | 日韩a在线看 | 国产伦精品一区二区三区在线 | 亚洲日韩中文字幕 | 久久综合亚洲鲁鲁五月久久 | 国产日韩精品久久 | 97超碰人人澡人人爱学生 | 欧美日韩另类在线观看 | 国产无限资源在线观看 | 九九热免费精品视频 | 亚洲午夜久久久综合37日本 | ,午夜性刺激免费看视频 | 日本中文字幕电影在线免费观看 | 特黄特色特刺激视频免费播放 | 天天插天天干天天操 | 午夜婷婷综合 | 日韩免费看片 | 久久久久激情视频 | 黄色小视频在线观看免费 | 久久精品一二三区 | www.国产毛片 | 久久狠狠亚洲综合 | 欧美精品中文在线免费观看 | 91最新地址永久入口 | 日韩激情片在线观看 | 一区二区三区韩国免费中文网站 | 成人在线视频免费看 | 在线中文字幕电影 | 国产精品99精品久久免费 | 在线视频欧美日韩 | 麻豆传媒一区二区 | 日本中文不卡 | 日韩精品视频第一页 | www91在线 | 香蕉视频在线观看免费 | 综合黄色网 | 伊人色综合网 | 男女视频国产 | 深爱五月激情网 | 亚洲精品国产精品乱码在线观看 | 国产一区视频在线观看免费 | 久久高清视频免费 | 亚洲成人在线免费 | www91在线观看 | 91久久在线观看 | 久久久久久久免费看 | 2023av在线 | 国产91精品欧美 | 久久精品99 | 天天射天天爱天天干 | 日韩久久精品一区 | 啪啪肉肉污av国网站 | 久久综合九色综合欧美狠狠 | 婷婷久月 | 免费无遮挡动漫网站 | 97超碰精品 | 久久婷婷一区二区三区 | 国产精品欧美久久久久天天影视 | 亚洲电影影音先锋 | 日韩在线免费视频 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 日韩亚洲国产精品 | 久久在线视频在线 | 亚洲乱码中文字幕综合 | 九九久久电影 | 粉嫩aⅴ一区二区三区 | 久久99久久久久久 | 92国产精品久久久久首页 | 日韩精品免费一区二区在线观看 | 91看片淫黄大片一级在线观看 | 日韩色av色资源 | 国产剧在线观看片 | 人人视频网站 | 高清av在线 | 播五月婷婷 | 99九九99九九九视频精品 | 日韩va亚洲va欧美va久久 | 美女黄频视频大全 | 婷婷久久一区 | 可以免费看av | www.久久视频 | 成年人免费电影在线观看 | 久久久久久伊人 | 天天弄天天操 | 精品伦理一区二区三区 | 国产精品999久久久 久产久精国产品 | 欧美乱淫视频 | 久久不卡国产精品一区二区 | 日韩免费网址 | 中文字幕在线观看91 | 欧美少妇18p | 欧美一区二区三区免费观看 | 国产一区二区三区免费在线观看 | 在线视频观看你懂的 | 国产精品18久久久久久久 | 婷婷午夜激情 | 青青草在久久免费久久免费 | 国产明星视频三级a三级点| www.夜夜操.com | 中文字幕第 | 欧美精品久久久久久 | 在线视频1卡二卡三卡 | 麻豆视频成人 | 91人人射 | 99在线观看免费视频精品观看 | 人人爽人人做 | 国产中文字幕在线 | 日韩av成人在线观看 | 超碰97在线人人 | 国产一级精品在线观看 | 中文不卡视频在线 | 中文字幕免费一区 | 精品国产一区二区三区av性色 | 色91av | 亚洲色图27p | 国产日韩在线看 | 丁香婷婷综合网 | 亚洲少妇激情 | 国产一级二级在线播放 | 日韩欧美大片免费观看 | 久久久久久久久久久久久国产精品 | 特黄特色特刺激视频免费播放 | 四虎成人精品永久免费av九九 | 欧美激情视频免费看 | 午夜三级毛片 | 精精国产xxxx视频在线播放 | www.狠狠操 | 日韩精品免费在线视频 | 久久久激情网 | 日韩中文字幕一区 | 久久欧美综合 | 免费久久视频 | 欧美久久久久 | 在线观看视频免费大全 | 中文字幕精品一区二区精品 | 久久午夜电影 | 国产不卡片 | 欧美伦理一区二区三区 | 国产精品va视频 | 日韩精品一区二区三区外面 | 在线播放 日韩专区 | 国产 中文 日韩 欧美 | www.婷婷com| 99久热在线精品 | 国产白浆视频 | 亚洲国产影院 | 国产精品欧美一区二区 | 国产日韩一区在线 | 香蕉视频网站在线观看 | 在线看中文字幕 | 国内精品久久久久久 | 国产午夜精品久久久久久久久久 | 狠狠操狠狠操 | 91九色视频在线观看 | 在线观看一级 | 日韩免费av片 | 国产成人精品免高潮在线观看 | 黄网站色 | 成人亚洲免费 | 亚洲欧美乱综合图片区小说区 | 午夜视频久久久 | 91九色网站 | 亚洲精品视频在线播放 | 国产中文欧美日韩在线 | 日韩videos高潮hd| 亚洲午夜精品一区二区三区电影院 | 国产一区二区免费 | 亚洲毛片视频 | 久久久网 | 中文字幕免费观看 | 久久激情五月丁香伊人 | 很黄很污的视频网站 | 狂野欧美激情性xxxx欧美 | 五月婷婷丁香综合 | 在线观看免费观看在线91 | 欧美日韩视频一区二区三区 | 中文字幕在线影院 | 免费看片亚洲 | 精品久久91 | 在线观看中文字幕第一页 | 免费高清在线视频一区· | 波多野结衣电影一区二区 | 国产精品中文字幕在线播放 | 911国产精品 | 国产免费视频一区二区裸体 | 国产尤物视频在线 | 四虎精品成人免费网站 | 婷婷五月情 | 天天夜夜亚洲 | 视频一区在线免费观看 | 欧美日韩视频观看 | 日本精油按摩3 | 韩国av电影网 | 美女av免费看| 久久久国产精品电影 | 久久高清免费视频 | 国产视频中文字幕在线观看 | 五月天综合在线 | 狠狠色狠狠色 | 在线免费观看国产黄色 | 国产淫a| 亚洲国产精品成人女人久久 | avv天堂| 成人黄色一级视频 | 久久久精品欧美一区二区免费 | 色综合天天综合在线视频 | 国产成人精品一区二区在线 | 91视视频在线直接观看在线看网页在线看 | 最近中文字幕大全 | 亚洲毛片一区二区三区 | www178ccom视频在线 | 亚洲成人网在线 | 亚洲视频2| 久久久国产一区二区 | 欧美日韩视频在线观看一区二区 | 久久成人人人人精品欧 | 成人黄色在线观看视频 | 丁香激情视频 | 在线视频你懂得 | 一区在线观看 | 欧美男同视频网站 | 日韩在线播放av | 国产资源站 | 日韩精品免费一线在线观看 | 亚洲免费一级 | 麻花豆传媒mv在线观看 | 色网址99 | 五月天电影免费在线观看一区 | 日日夜日日干 | 久久久久久久久久久成人 | 国产亚洲成人网 | 美女国产精品 | 美女久久久久久久久久 | 国产精品18久久久久久首页狼 | 国产专区在线视频 | 超碰97中文| 亚洲欧洲中文日韩久久av乱码 | 中文字幕国产精品一区二区 | 久草视频免费在线播放 | 天堂成人在线 | 色婷婷免费视频 | 久久精品99国产国产精 | 手机在线观看国产精品 | 亚洲精品免费在线 | 欧美一区视频 | 久久的色 | 四虎www.| 正在播放国产一区二区 | 午夜.dj高清免费观看视频 | 久久黄视频 | 国产福利资源 | 99re热精品视频 | 免费亚洲成人 | 91大神在线观看视频 | 欧美在线观看视频 | 亚洲精品免费在线 | 一区二区三区四区五区六区 | 97超碰人人澡 | 婷婷久久五月天 | 亚洲影视九九影院在线观看 | 成人免费影院 | 亚洲每日更新 | 国产淫片 | 亚洲码国产日韩欧美高潮在线播放 | 91 | 精品自拍sae8—视频 | 91精品推荐 | 国产五月婷 | 免费看色网站 | 国产精品福利无圣光在线一区 | 久久久久国产免费免费 | 韩国一区二区三区在线观看 | 精品中文字幕在线观看 | 天天视频色版 | 91av手机在线观看 | 韩国av一区二区三区 | 一区二区三区在线免费观看 | 免费看污在线观看 | 91精品在线免费观看视频 | 国产精品专区h在线观看 | www.色爱| 久久这里精品视频 | 丁香视频五月 | 中文字幕网站视频在线 | 日韩av电影网站在线观看 | 伊人影院在线观看 | 麻豆视频免费播放 | 操操操天天操 | 免费看麻豆 | 91在线免费看片 | 在线观看免费版高清版 | 欧美在线aa | 精品国产乱码久久久久久1区2匹 | 东方av在 | 欧美日韩视频在线一区 | 日韩av在线高清 | 黄色成人在线观看 | 国产精品一区二区三区在线播放 | 午夜视频久久久 | a天堂最新版中文在线地址 久久99久久精品国产 | 毛片网站在线观看 | 婷婷综合成人 | 日韩欧美在线观看 | av高清在线观看 | 夜夜躁天天躁很躁波 | 伊人手机在线 | 国产三级国产精品国产专区50 | 亚洲2019精品 | 国产精品理论片在线观看 | 国产精品欧美 | 日韩精品免费在线播放 | 国产在线观看av | 日日操操操| 九九在线精品视频 | 久久免费视频2 | 亚洲精品字幕在线 | 999久久久国产精品 高清av免费观看 | 亚洲理论电影 | 在线精品亚洲一区二区 | 国产精品一区电影 | 一区二区三区在线免费观看 | 亚洲国产黄色片 | 亚洲经典视频在线观看 | 国产精品第一页在线 | 免费视频你懂的 | 成人h电影在线观看 | 亚洲国产美女久久久久 | 超级碰碰碰视频 | 欧美色图30p | 毛片美女网站 | av在线收看 | 中文在线a天堂 | 久久国产精品视频免费看 | 婷婷伊人综合 | 一区二区不卡视频在线观看 | 97国产视频 | 婷婷久久综合网 | 欧美a√大片 | 中文字幕在线资源 | 日本中文字幕在线看 | 成人a大片 | 成人精品一区二区三区中文字幕 | 99久久综合精品五月天 | 黄网站a| 天天舔天天搞 | 国产精品激情在线观看 | 一区 二区电影免费在线观看 | 免费a级毛片在线看 | 精品久久久久免费极品大片 | 久久午夜电影院 | 婷婷激情网站 | 中文av影院 | 在线欧美中文字幕 | av在线电影网站 | 在线国产视频 | 高清av免费观看 | 久草网在线观看 | 免费日韩 精品中文字幕视频在线 | 国产三级av在线 | 成人av教育 | 成年人电影免费看 | 99久久精品一区二区成人 | 精品视频在线观看 | 在线成人一区 | 天天摸夜夜添 | 人人爽人人爽人人片av | 青青草国产免费 | 久久久久久久久久久久久影院 | 能在线观看的日韩av | 福利网址在线观看 | 国产69精品久久久久99尤 | 九九九九九九精品任你躁 | 日韩在线资源 | 久久国产精品免费 | 高潮久久久久久 | 日日干精品 | www夜夜操| 四虎在线永久免费观看 | 久久精品4 | 亚洲六月丁香色婷婷综合久久 | 成人h在线观看 | 日韩欧美精品免费 | 99视| 久久久久久久久久毛片 | 中文字幕一二三区 | 成人av免费 | 欧美日韩国产一二三区 | 国产精品久久久久久妇 | 操操操天天操 | 久久精品一 | 亚洲午夜久久久综合37日本 | 国产精品毛片一区视频播 | 国产看片免费 | 天天天天天干 | 日本在线视频一区二区三区 | 久久久久久久久久久网站 | 在线播放一区 | 中文字幕在线免费看线人 | 一级黄视频 | 欧美日韩免费一区二区三区 | 精品视频区 | 午夜电影 电影 | 在线免费高清一区二区三区 | 九月婷婷色 | 狠狠躁天天躁 | 极品美女被弄高潮视频网站 | 久久综合久久综合久久综合 | 97香蕉视频| 久久99国产一区二区三区 | 麻豆观看| 蜜桃视频精品 | 99视频国产精品 | 国产精品久久久久久久久久直播 | av免费在线观看1 | 探花在线观看 | 久久久精品网站 | 免费网站看av片 | 国产91对白在线 | 人人爽人人澡 | 国产男女免费完整视频 | 超碰在线免费97 | 欧美一级免费黄色片 | 五月综合激情网 | 国产资源精品在线观看 | 国产中文在线观看 | 99人久久精品视频最新地址 | 国产精品mv | 中文字幕在线观看1 | 久久国内精品视频 | 国语久久| 热久久视久久精品18亚洲精品 | 97人人模人人爽人人喊中文字 | 日韩高清在线一区二区 | 西西人体4444www高清视频 | 探花视频免费在线观看 | 亚洲伊人色 | 91欧美精品| 又黄又爽又无遮挡免费的网站 | 亚洲欧美日韩在线一区二区 | 精品久久久久一区二区国产 | 国产成人精品午夜在线播放 | free,性欧美 九九交易行官网 | 日本久草电影 | 国产一区二区三精品久久久无广告 | 国产精品麻豆视频 | 91热在线| 国产一区二区在线影院 | 亚洲国产日韩精品 | 国产精品国产三级国产不产一地 | 久久综合精品国产一区二区三区 | av三区在线 | 91视频-88av| 亚洲精品视频网 | 中文字幕在线观看国产 | 日韩理论电影网 | 国产 在线 日韩 | 天堂久色 | 日日碰狠狠添天天爽超碰97久久 | 成年人免费观看在线视频 | 国产视频一区精品 | 国产日韩欧美网站 | 欧美一区二区在线看 | 欧美激情视频一区二区三区免费 | 天天操天天操天天 | 亚洲免费av在线 | 少妇bbbb搡bbbb搡bbbb | 99资源网 | 久久精品播放 | 国产成人精品日本亚洲999 | 久久久免费观看完整版 | 天天爽天天搞 | 91完整版观看 | 欧美一级性生活视频 | 欧美另类色图 | 综合成人在线 | 亚洲精品久久久久久中文传媒 | 久久6精品 | 欧美 亚洲 另类 激情 另类 | 欧美久久久久久久久久久久久 | adn—256中文在线观看 | 亚洲伦理电影在线 | 99久久久国产免费 | 中文字幕 国产 一区 | 久久神马影院 | 亚洲黄色网络 | 亚洲手机天堂 | 欧美成年黄网站色视频 | 91麻豆精品国产自产在线游戏 | 天天操综合网 | 亚洲精品自拍视频在线观看 | 91精品国产99久久久久久红楼 | 国产91欧美 | 免费日韩三级 | 欧美日韩大片在线观看 | 日韩欧美视频免费在线观看 | 天天操伊人 | 婷婷电影在线观看 | 精品成人a区在线观看 | 亚洲国产精品日韩 | 久久久久久久久久久久国产精品 | 欧美va在线观看 | 97人人网 | 国产成人精品三级 | 国产精品欧美激情在线观看 | 国产 欧美 在线 | 国产精品美女久久久久久2018 | 欧美日韩国产在线观看 | 少妇资源站| 91最新网址 | 国产黄在线播放 | 国产一级淫片在线观看 | 最近中文字幕免费观看 | 精品国产成人av | 18av在线视频| 日韩精品一区二区三区中文字幕 | 国产一级淫片免费看 | 日日操网站 | 日韩在线中文字幕视频 | 中文字幕在线观看免费高清电影 | 国产精品资源在线观看 | 久久久久久97三级 | 99久久精品免费看 | 夜夜视频| 人人搞人人干 | 在线观看黄色的网站 | 日韩美在线| 国产精品久久久久av | 中文字幕成人在线观看 | 97超碰在线免费观看 | 91视频在线国产 | 欧美 日韩 视频 | av丝袜在线 | 99成人精品 | 国产精品亚洲精品 | 综合在线观看色 | 久久综合免费视频 | 天天干夜夜| 一二区电影 | 五月综合激情 | 99精品国产在热久久下载 | 国产网红在线观看 | 国产精品黄网站在线观看 | 久久精品国亚洲 | 最近免费中文视频 | 91九色蝌蚪国产 | 久久新视频 | 在线看av网址 | 99久久99视频 | 日日婷婷夜日日天干 | 亚洲一级黄色 | 婷婷久久综合网 | 久久99精品久久久久久三级 | 视频一区亚洲 | 国产精品美女网站 | 18国产精品福利片久久婷 | 午夜视频免费在线观看 | 精品一二三区视频 | av高清一区二区三区 | 西西人体www444 | 狠狠狠色丁香婷婷综合久久88 | 国产精品视频永久免费播放 | 不卡av在线 | 亚洲午夜精品在线观看 | 国产成人在线观看免费 | 人成免费网站 | 精品一二三四五区 | 在线视频福利 | 日日操日日插 | 91精品在线免费观看视频 | 在线视频 你懂得 | 午夜aaaa | 国产精品一区二区久久国产 | 蜜桃传媒一区二区 | 色婷婷狠狠操 | 国产男女无遮挡猛进猛出在线观看 | 亚洲天天在线日亚洲洲精 | 日韩成人av在线 | 欧美日韩视频在线 | 在线免费观看国产黄色 | 91精品区 | 天天操夜夜逼 | 日韩免费福利 | 国产精品免费久久久久久久久久中文 | av资源在线观看 | 久久99精品久久久久久久久久久久 | 欧美日韩免费观看一区=区三区 | 91污视频在线观看 | 久久久麻豆精品一区二区 | 一级理论片在线观看 | 日韩av成人免费看 | 亚洲国产欧美在线人成大黄瓜 | 九九九九精品九九九九 | 精品字幕在线 | 国产精品嫩草影院9 | 国产真实精品久久二三区 | 97碰碰精品嫩模在线播放 | 人人爽人人爽人人爽人人爽 | 97人人视频 | 国产一级精品绿帽视频 | 狠狠干狠狠操 | 日韩欧美区 | 91成年人在线观看 | 黄色国产在线 | 欧美性一级观看 | 亚洲国产中文字幕在线 | 欧美成人aa | 国产麻豆精品95视频 | 日韩三区在线观看 | 亚洲乱码精品久久久久 | 丁香六月婷婷开心 | 96久久精品 | 人人爽人人射 | 成年人在线免费看视频 | 国产精品毛片一区视频 | 精品国产精品久久一区免费式 | 国产免费视频一区二区裸体 | 欧洲激情在线 | 欧美性久久久久久 | 密桃av在线 | 国产伦理久久精品久久久久_ | 特级毛片在线免费观看 | 在线欧美a| 亚洲免费av观看 | 中文字幕一区二 | 91亚色免费视频 | 99免费在线视频 | www色网站 | 欧美精品做受xxx性少妇 | 久久精品毛片基地 | 97电影院网 | 国产精品99免视看9 国产精品毛片一区视频 | 成人在线免费av | 最新在线你懂的 | 99热这里有精品 | 在线免费黄色毛片 | 久久久高清免费视频 | 2019免费中文字幕 | 亚洲精品视频大全 | 久久久www成人免费毛片麻豆 | 91九色在线播放 | 中文字幕在线观看网 | 国产成人免费高清 | 日韩欧美精品一区二区三区经典 | 免费精品视频在线观看 | 国产精品美女久久久久久网站 | 日韩一区二区三区视频在线 | 国产福利a | 国产分类视频 | 婷婷色中文| 狠狠躁18三区二区一区ai明星 | 国产福利91精品 | 精品久久久久久综合日本 | 天天av综合网 | 久久亚洲欧美日韩精品专区 | 亚洲人人精品 | 国产成人av网址 | 国产高清视频在线免费观看 | 中文字幕亚洲精品日韩 | 国产成人一级 | 中文字幕一区二区三区在线观看 | 国产午夜精品一区 | 亚洲国产三级在线观看 | 中文字幕免费观看全部电影 | 成人毛片一区二区三区 | 99精品久久99久久久久 | 国产在线97| 婷婷在线免费观看 | japanesefreesex中国少妇 | 日韩精品视频在线免费观看 | 99久久99久久 | 麻豆视频在线观看免费 | 国产精品区免费视频 | 色狠狠综合天天综合综合 | 午夜国产一区二区三区四区 | 欧美亚洲国产精品久久高清浪潮 | 天天色天天操天天爽 | 日本中文字幕系列 | 97在线观看免费高清完整版在线观看 | 亚洲精品视频播放 | 日韩中文字幕免费视频 | 久久99精品久久久久婷婷 | 中文在线字幕免 | 五月婷婷黄色 | 欧美日韩精品二区第二页 | 日韩精品中文字幕在线观看 | 在线观看免费福利 | 中文字幕在线看视频国产 | 六月丁香在线视频 | 夜色资源站国产www在线视频 | 国产综合精品一区二区三区 | 日韩午夜电影院 | 激情av网 | av福利免费 | avwww在线观看 | 国产在线日本 | 国内精品久久久久久久久久清纯 | 深爱综合网 | 日韩av电影免费在线观看 | 欧美 亚洲 另类 激情 另类 | 久久中文字幕在线视频 | av高清一区二区三区 | 国产精品久久久久影视 | 91福利区一区二区三区 | 在线视频日韩精品 | 久久久国产精品电影 | 日本性xxxxx 亚洲精品午夜久久久 | 久久久久在线视频 | 91在线91拍拍在线91 | 国产精品男女 | 国产精品毛片一区二区在线看 | 久久综合影视 | 国产小视频免费在线观看 | 日韩精品在线免费观看 | 欧美日韩一区二区视频在线观看 | 五月天久久综合 | 欧美日韩一级久久久久久免费看 | 中文日韩在线视频 | 成人一区电影 | 91伊人影院 | 六月天色婷婷 | 黄色一级在线视频 | 免费看的黄色 | 欧美精选一区二区三区 | 永久免费视频国产 | 人人舔人人干 | 国产日韩在线观看一区 | 一级片视频在线 | 超碰在线97免费 | 亚洲精品在线观看不卡 | 美女免费视频一区 | 一级黄色在线视频 | 欧美午夜一区二区福利视频 | 玖玖在线资源 | www.狠狠干| www.久久色 | 欧美日韩免费一区二区 | 免费看的黄色片 | 色福利网| 国产精品99页 | 久久久久久久久久国产精品 | 99久久精品国产一区 | 69av国产| 中文字幕4| 五月激情丁香婷婷 | 国产成人av | 免费国产在线观看 | 丁香资源影视免费观看 | 日韩精品免费在线播放 | 天天色天天艹 | 99久久精 | 丰满少妇在线观看资源站 | 黄a在线看 | 国产在线欧美 | 亚洲色图22p | 一区二区三区国 | 五月婷婷在线观看视频 | av天天在线观看 | 制服丝袜成人在线 | 国产精品观看在线亚洲人成网 | 色97在线 | 久久天堂影院 | 久久网站最新地址 | www最近高清中文国语在线观看 | 91香蕉视频在线 | 国产视频亚洲 | 久久久久福利视频 | 18做爰免费视频网站 | 婷婷激情在线 | 欧美坐爱视频 | 天天摸天天干天天操天天射 | 久久刺激视频 | 国产成人区 | 免费亚洲视频在线观看 | 免费在线观看污网站 | 国产精品一区二区免费视频 | 日韩小视频网站 | 麻豆视频国产在线观看 | 久久精品美女视频网站 | 伊人久久精品久久亚洲一区 | 欧美 日韩 性 | 色wwwww|