• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Android自定義圖表組件的關(guān)鍵技術(shù)研究

    2019-11-14 08:17高毅王昕丁勇涂小琴
    軟件 2019年9期
    關(guān)鍵詞:圖表繪制組件

    高毅 王昕 丁勇 涂小琴

    摘 ?要: 在數(shù)據(jù)可視化方面,Android系統(tǒng)提供的組件不能滿足開發(fā)人員的需求,而第三方的圖表組件技術(shù)不夠成熟,本文提出了一種基于Android的圖表組件的實現(xiàn)方法,著重討論了圖表組件的布局空間設(shè)計、類設(shè)計、單位轉(zhuǎn)換、繪制流程、圖表繪制。該組件自定義程度高,使用方便,布局整齊,動畫效果良好,大大增強了用戶體驗,能滿足大多數(shù)Android應用軟件開發(fā)的需求,具有一定的創(chuàng)新性和很好的實用價值。

    關(guān)鍵詞?圖表;自定義;Android;數(shù)據(jù)可視化

    中圖分類號: TP317????文獻標識碼?A????DOI:10.3969/j.issn.1003-6970.2019.09.009

    本文著錄格式:高毅,王昕,丁勇,等. 基于Android自定義圖表組件的關(guān)鍵技術(shù)研究[J]. 軟件,2019,40(9):40-44

    Research on Key Technologies Based on Android Custom Chart Component

    GAO Yi, WANG Xin, DING Yong, TU Xiao-qin

    College of Arts and Sciences,?Yunnan Normal UniversityKunming?650222,China

    Abstract: In terms of data visualization, the components provided by Android system can not meet the needs of developers, and the third-party chart component technology is not mature enough. This paper proposes an Android-based chart component implementation method, focusing on the layout space design of chart components, class design, unit conversion, drawing process, chart drawing. The component has a high degree of customization, convenient use, neat layout, good animation effect, greatly enhances the user experience, can meet the needs of most Android application software development, has certain innovation and good practical value.

    Key words: Chart; Custom; Android; Data visualization

    0??引言

    在數(shù)據(jù)的分析和展示過程中,數(shù)據(jù)可視化是非常重要的手段之一,而各種類型的圖表,又是數(shù)據(jù)可視化中最重要和最常用的工具[1]。圖表可以以簡潔的方式和最清晰的視覺效果,高效地將有價值的信息傳遞給用戶。所以,在應用軟件開發(fā)中正得到越來越廣泛的應用。在Android應用軟件開發(fā)中,雖然系統(tǒng)提供了大量的組件用于界面設(shè)計,但是沒有圖表組件,因此需要開發(fā)者來創(chuàng)建自定義的圖表組件,以實現(xiàn)用戶的特殊需求[2]。

    然而,Android系統(tǒng)中的圖表組件的開源方案并不多,第三方的圖表組件技術(shù)又不夠成熟。本文通

    過設(shè)計一套基于Android的圖表組件,包含了散點圖、折線圖、柱狀圖、條形圖、餅圖和雷達圖六種基本圖表,實現(xiàn)了數(shù)據(jù)的可視化展示,該組件的實現(xiàn)通過繼承View類,重寫了onMeasure、onDraw等多個方法,加入了好多的組件屬性作為類的數(shù)據(jù)成員,并編寫了get方法和set方法,豐富了圖表組件的顯示樣式,通過了ValueAnimator類的相關(guān)技術(shù)來加入動畫效果,增強了用戶體驗。

    1??相關(guān)概念

    1.1??圖表

    圖表泛指在屏幕中顯示的,可直觀展示統(tǒng)計信息屬性(時間性、數(shù)量性等),對知識挖掘和信息直觀生動感受起關(guān)鍵作用的圖形結(jié)構(gòu),是一種很好的將對象屬性數(shù)據(jù)直觀、形象地"可視化"的手段[3]。合理的數(shù)據(jù)圖表,會更直觀的反映數(shù)據(jù)間的關(guān)系,比用數(shù)據(jù)和文字描述更清晰、更易懂。將工作表中的數(shù)據(jù)轉(zhuǎn)換成圖表呈現(xiàn),可以關(guān)注我們更好地了解數(shù)據(jù)見的比例關(guān)系及變化趨勢,對研究對象做出合理的推斷和預測。

    1.2View

    Android應用的絕大部分UI組件都放在android.widget包及其子包、android.view包及其子包中,Android應用的所有UI組件都繼承了View類,View組件非常類似于Swing編程的JPanel,它代表一個空白的矩形區(qū)域[4]。

    1.3Paint

    要實現(xiàn)繪圖功能,首先需要畫筆工具,Paint類便是Android的畫筆,它包含了繪制幾何圖形、文本和位圖所需的一些風格和顏色信息,如線寬、字體和大小等。通過Paint類提供給用戶的公共方法,可以對其屬性進行設(shè)置。

    1.4Canvas

    各類圖形是要在一張畫布上繪制的,Canvas類則實現(xiàn)了畫布這一功能,在繪制圖形之前,需要對Canvas設(shè)置一些畫布的屬性,如畫布的顏色、尺寸等。

    1.5Path

    在進行劃線等操作時還需要連接路徑,這個工具由Path提供,Path類中包含一些直線或曲線連接到指定點的方法。Android提供的Path是一個非常有用的類,它可以預先在View上將N個點連成一條“路徑”,然后調(diào)用Canvas的drawPath方法即可沿著路徑繪制圖形。

    2??關(guān)鍵技術(shù)

    2.1布局空間設(shè)計

    移動端設(shè)備的屏幕相對于計算機顯示器尺寸相對較小,移動端應用開發(fā)的特點之一就是可用來顯示的空間小,要讓圖表有好的顯示效果,一定要合理分配利用有限的空間,所以,在實現(xiàn)圖表組件時,布局空間的設(shè)計尤為關(guān)鍵。圖表組件的布局空間設(shè)計如圖1所示,分為圖表標題區(qū)、圖表繪制區(qū)和系列標題區(qū)三個部分[5-6]。其中,圖表標題區(qū)用來顯示圖表的標題,本文實現(xiàn)的圖表組件可以設(shè)置圖表標題的文本大小,圖表標題的文本顏色;圖表繪制區(qū)用來顯示圖表及圖表相關(guān)元素,包括坐標軸、坐標刻度值、背景線條等,本文實現(xiàn)的圖表組件可以設(shè)置坐標線條顏色、坐標線條粗細、坐標刻度值文本大小、坐標刻度值文本顏色、背景樣式等,這是一個核心區(qū)域;系列標題區(qū)用來顯示圖表的系列標題,本文實現(xiàn)的圖表組件可以顯示多個系列數(shù)據(jù),所以,圖表的系列標題一般會存在多個,為了更好的利用布局空間,本文設(shè)計的方案是每一行顯示兩個系列標題,依次從左到右,從上到下。該圖表組件的布局空間的設(shè)計,需要進行計算,首先計算該圖表在移動設(shè)備端的顯示大小,再計算系列標題區(qū)所占布局空間的大小,最后得到圖表繪制區(qū)的大小。

    2.2單位轉(zhuǎn)換

    在Android應用開發(fā)中,在設(shè)置組件的大小和文字的大小時都要用到單位,Android中常用的單位有px、dip、dp和sp等。其中,px(像素),每個px對應屏幕上的一個點。dip或dp(設(shè)備獨立像素),一種基于屏幕密度的抽象單位。sp(比例像素),主要處理字體的大小,可以根據(jù)用戶的字體大小首選項進行縮放。一般情況下,用dp來表示距離大小,用sp表示字體大小。

    圖表組件在實現(xiàn)時,使用的單位為像素。由于移動端設(shè)備的尺寸大小和分辨率各式各樣,各種屏幕密度不同導致同樣像素大小的長度在不同密度的屏幕上的顯示長度不同,相同長度的屏幕高密度屏幕包含更多像素點,為了在不同大小的屏幕上都有好的顯示效果,該組件在實現(xiàn)的過程中需要進行單位轉(zhuǎn)換,需要把dp和sp轉(zhuǎn)換為px。

    (1)dp轉(zhuǎn)px

    在圖表組件實現(xiàn)中,編寫了把dp單位轉(zhuǎn)換為px單位的方法,代碼如下:

    private float dpTopx(float dp) {

    return TypedValue.applyDimension(Type d V alue.?CO MPLEX_UNIT_DIP,

    dp, getResources().getDisplayMe t rics());

    }

    (2)sp轉(zhuǎn)px

    在圖表組件實現(xiàn)中,編寫了把sp單位轉(zhuǎn)換為px單位的方法,代碼如下:

    private float spTopx(float sp) {

    return TypedValue.applyDimension(Ty pedValue.?COMPLEX_UNIT_SP,

    sp,?getResources().getDisplayM e t rics());

    }

    2.3??類設(shè)計

    圖表組件在實現(xiàn)的過程中,涉及到FColor、DataItems、ChartEntity、View、ChartView5個類,除了類View是系統(tǒng)類,其它的類都是為了實現(xiàn)該圖表組件而編寫的。類及類關(guān)系如圖2所示,類ChartView繼承于View類,類ChartView依賴于FColor類,類ChartView和類ChartEntity的關(guān)系是組合,類ChartEntity和類DataItems的關(guān)系是組合。下面就這幾個類做詳細描述。

    (1)FColor類

    在Android程序設(shè)計中,我們可以在xml布局文件中使用井號加6位十六進制(形如:#XXXXXX)或者井號加8位十六進制(形如:#XXXXXXXX)來表示顏色值,而在java代碼中不行。用這種形式來表示顏色值還是非常直觀明了的,為了在java代碼中也能夠這樣表示,特地編寫FColor類來實現(xiàn)此功能。

    FColor類的數(shù)據(jù)成員由a、r、g、b構(gòu)成。其中a表示透明度的值,r表示紅色分量的值,g表示綠色分量的值,b表示藍色分量的值。它們數(shù)據(jù)類型為int,取值范圍介于0到255之間。

    FColor類中的關(guān)鍵方法public void setColor(String color),是把字符串表示的顏色值分割并轉(zhuǎn)換到a、r、g、b四個分量上面。

    8位十六進制轉(zhuǎn)換代碼如下:

    this.a=Integer.parseInt(color.substring(1, 2+1), 16);

    this.r=Integer.parseInt(color.substring(3, 4+1), 16);

    this.g=Integer.parseInt(color.substring(5, 6+1), 16);

    this.b=Integer.parseInt(color.substring(7, 8+1), 16);

    6位十六進制轉(zhuǎn)換代碼如下:

    this.a=255;

    this.r=Integer.parseInt(color.substring(1, 2+1), 16);

    this.g=Integer.parseInt(color.substring(3, 4+1), 16);

    this.b=Integer.parseInt(color.substring(5, 6+1), 16);

    (2)DataItems類

    DataItems類是用來表示一個序列數(shù)據(jù)的,有7個數(shù)據(jù)成員,其中,seriesName表示系列名,XItemValues表示X項的值(數(shù)組),XItemValuesSize表示X項個數(shù)seriesValues表示Y項的值(數(shù)組),seriesValuesSize表示Y項個數(shù),seriesValuesMax表示Y項最大值,seriesValuesMin表示Y項最小值,為了方便構(gòu)造圖表Y軸坐標刻度,特別地加了最后2個數(shù)據(jù)成員。DataItems類除了構(gòu)造方法、數(shù)據(jù)成員的get/set方法外,關(guān)鍵方法有3個。其中,?addSeriesNam方法的功能是用來添加數(shù)據(jù)序列的名稱;addData方法的功能是用來添加1個數(shù)據(jù)項,1個數(shù)據(jù)項由2個部分組成,分別為數(shù)據(jù)項的名稱和數(shù)據(jù)項的值;clearData方法的功能是用來清空數(shù)據(jù)序列值的。

    (3)ChartEntity類

    ChartEntity類是用來表示圖表的數(shù)據(jù)源的,可以存儲多個系列數(shù)據(jù),有2個數(shù)據(jù)成員,其中,ChartTitle表示系統(tǒng)標題,Series是DataItems類的數(shù)組對象,用來存儲多個系列的數(shù)據(jù)。ChartEntity類除了構(gòu)造方法、數(shù)據(jù)成員的get/set方法外,有一個關(guān)鍵方法setData,該方法是用來加載數(shù)據(jù)的。

    (4)ChartView類

    ChartView類是用來實現(xiàn)圖表組件繪制的,該類有幾十個數(shù)據(jù)成員,用來表示圖表的數(shù)據(jù)源、標題文本、標題文本大小、標題文本顏色、系列標題文本、系列標題文本大小、系列標題文本顏色、坐標軸相關(guān)屬性、內(nèi)外邊距、動畫相關(guān)屬性、背景相關(guān)屬性等。ChartView類除了構(gòu)造方法、數(shù)據(jù)成員的get/set方法外,最為重要的就是onDraw方法了。ChartView類作為View類的子類,需要去重寫多個方法來實現(xiàn)圖表組件的繪制。

    2.4圖表的繪制

    (1)繪制流程

    在Android系統(tǒng)中實現(xiàn)圖表組件,需要繼承View類,重寫其中的一個或者多個方法。本文描述的圖表組件是有動畫效果的,在繪制過程中把背景的繪制和圖表區(qū)的繪制分開,這樣有利于控制圖表區(qū)的動畫效果。圖表組件繪制流程的算法描述如算法1所示。

    算法1

    第1步:根據(jù)用戶設(shè)置計算圖表系列數(shù)據(jù);

    第2步:根據(jù)用戶設(shè)置計算圖表屬性值;

    第3步:根據(jù)系列數(shù)據(jù)和圖表屬性值計算相應的圖表參數(shù),用于后面繪制背景和圖表;

    第4步:繪制背景;

    第5步:初始屬性動畫值,animatedValue=0;

    第6步:判斷animatedValue <= 1 是否成立,若成立,繼續(xù)下一步,否則,跳到第9步;

    第7步:根據(jù)屬性動畫值animatedValue重繪圖表,也就是重新執(zhí)行onDraw方法;

    第8步:根據(jù)ValueAnimator對象的addUpd ate Listener監(jiān)聽事件計算新的屬性動畫值animatedValue,返回第6步;

    第9步:算法結(jié)束。

    (2)重寫onDraw方法

    基于Android UI組件的實現(xiàn)原理,開發(fā)者完全可以開發(fā)出項目定制的組件,當Android系統(tǒng)提供的UI組件不足以滿足需求時,可以通過繼承View來派生自定義組件。過程為,首先定義一個繼承View基類的子類,然后重寫View類的一個或多個方法來實現(xiàn),其中,onDraw方法尤為關(guān)鍵。本文描述的圖表組件由散點圖、折線圖、柱狀圖、條形圖、餅圖和雷達圖六種基本圖表組成,每一種圖表的繪制都有一定的差異,在此,僅以折線圖為例來對onDraw方法的關(guān)鍵代碼做描述。

    ……

    //計算起點坐標

    startX=startLeft; startY=startTop+((Float.valueOf(yItemTitle.get(yIt emsCount-1))-(float)value)/(Float.valueOf(yItemTitle.get?(yItemsCount-1))-Float.valueOf(yItemTitle.get(0))))*co nt entHeight;

    //繪制第一個點標志

    drawMark(canvas,seriesMark[i%seriesMark.length],?seriesItemColor.get(i%seriesItemColor.size()),startX,startY,?dpTopx(markWidth));

    //根據(jù)屬性動畫animatedValue變量值計算當前繪制到哪一個刻度區(qū)(X軸方向)

    int no=getScope(animatedValue);

    //對小于no的刻度區(qū)進行繪制

    for(int j=1;j

    if(j//取系列中數(shù)據(jù)項的值

    v1=lineSeries.get(i).getSeriesValues().get(j-1);

    v2=lineSeries.get(i).getSeriesValues().get(j);

    //計算折線的起點坐標

    startX=startLeft+(j-1)*avgDis;

    stopX=startLeft+(j)*avgDis;

    //計算折線的終點坐標

    startY=startTop+((Float.valueOf(yItemTitle.get(yItemsCount-1))-

    (float)v1)/(Float.valueOf(yItemTitle.get(yIte msCount-1))-

    Float.valueOf(yItemTitle.get(0))))*contentH eight;

    stopY=startTop+((Float.valueOf(yItemTitle.get(yItemsCount-1))-

    (float)v2)/(Float.valueOf(yItemTitle.get(yIte msCount-1))-

    Float.valueOf(yItemTitle.get(0))))*contentH eight;

    //繪制折線

    canvas.drawLine(startX, startY, stopX, stopY,?linePaint);

    //繪制點標志

    drawMark(canvas,seriesMark[i% seriesMark.?length],

    seriesItemColor.get(i%seriesItemColor.size()),

    stopX,stopY,dpTopx(markWidth));

    //把上面折線的終點設(shè)置為下一條折線的起點

    startX=stopX;

    startY=stopY;

    }

    }

    //若屬性動畫animatedValue變量值小于等于1,對等于no的刻度區(qū)進行重新繪制,以實現(xiàn)動畫效果

    if(animatedValue<=1){

    if(no<lineSeries.get(i).getSeriesValues().size()){

    //計算折線終點的X坐標

    stopX=startLeft+animatedValue*contentWidth;

    //計算折線終點的Y坐標

    v1=lineSeries.get(i).getSeriesValues().get(no-1);

    v2=lineSeries.get(i).getSeriesValues().get(no);

    float x1=startLeft+(no-1)*avgDis;

    float x2=startLeft+(no)*avgDis;

    float y1=startTop+((Float.valueOf(yItemTitle.get?(yItemsCount-1))-

    (float)v1)/(Float.valueOf(yItemTitle.get(yItemsCount-1))-

    Float.valueOf(yItemTitle.get(0))))*contentHeight;

    float y2=startTop+((Float.valueOf(yItemTitle.get?(yItemsCount-1))-

    (float)v2)/(Float.valueOf(yItemTitle.get(yItems Count-1))-

    Float.valueOf(yItemTitle.get(0))))*contentHeight;

    float x=startLeft+animatedValue*contentWidth;

    stopY=(y2*(x-x1)+y1*(x2-x))/(x2-x1);

    //繪制折線

    canvas.drawLine(startX, startY, stopX, stopY, linePaint);

    }

    }

    //繪制最后一個點標志

    if(animatedValue==1){

    drawMark(canvas,seriesMark[i%seriesMark.length],

    seriesItemColor.get(i%seriesItemColor.size()),

    stopX,stopY,dpTopx(markWidth));

    }

    3??實驗效果

    本文實現(xiàn)的圖表組件的效果如圖所示,該圖表組件由散點圖、折線圖、柱狀圖、條形圖、餅圖和雷達圖六個基本圖表構(gòu)成。該圖表組件可以展示多個系列數(shù)據(jù),還具有動畫效果,文本和圖表可以很好的自適應移動端設(shè)備。組件在設(shè)計的過程中,加入了大量的屬性作為類的數(shù)據(jù)成員,并編寫了相應的set方法和get方法,方便Android應用軟件開發(fā)人員根據(jù)自身的需求去設(shè)置圖表樣式,如標題文本、標題文本大小、標題文本顏色、系列標題文本、系列標題文本大小、系列標題文本顏色、坐標軸相關(guān)屬性、內(nèi)外邊距、動畫相關(guān)屬性、背景相關(guān)屬性等。相比現(xiàn)有的類似的第三方開源方案,自定義程度高、使用方便、靈活,用戶體驗好,所以,該組件還是具有很好的實用性和創(chuàng)新性。

    4??結(jié)語

    本文實現(xiàn)的圖表組件可以解決一些數(shù)據(jù)展示的問題,可以展示多個系列的數(shù)據(jù),方便不同系列的數(shù)據(jù)進行對比,經(jīng)過測試,組件自定義程度高,使用方便,布局整齊,動畫效果良好,大大增強了用戶體驗,能滿足大多數(shù)Android應用軟件開發(fā)的需求。但是,圖表包含很多種類型,而本文僅僅實現(xiàn)了散點圖、折線圖、柱狀圖、條形圖、餅圖和雷達圖六種,當遇到一些特殊的數(shù)據(jù)可視化時,該組件就不能滿足需求了,在以后的研究工作中,將在圖表改進、圖表類型擴展方面做深入研究。

    參考文獻

    • 陳為, 沈則潛, 陶煜波. 數(shù)據(jù)可視化[M]. 北京:?電子工業(yè)出版社, 2013.?12:?39.
    • 尹濤.?一種動態(tài)圖表組件的設(shè)計與實現(xiàn)[D].?北京:?北京郵電大學.?2014:?11.
    • 王魯. 信息技術(shù)[M]. 昆明: 云南人民出版社, 2013:?97-103.
    • 李剛, 瘋狂Android講義(第3版)[M]. 北京:電子工業(yè)出版社, 2015.?6:?123.
    • 高毅,?王昕,?楊克光.Android平臺下折線圖組件的研究和實現(xiàn)[J].?現(xiàn)代計算機,?2016.?5:?69-71.
    • 高毅,?楊克光,?王昕.?基于Android平臺的柱狀圖組件的設(shè)計實現(xiàn)[J].?現(xiàn)代計算機,?2016.?6:?77-80.
    • 岳鋼, 王楠. 網(wǎng)絡(luò)學習中知識可視化效率研究[J]. 軟件, 2015, 36(2): 92-96.
    • 李晉宏, 戴海濤. 可穿戴設(shè)備數(shù)據(jù)挖掘及可視化技術(shù)的研究[J].?軟件, 2015, 36(12): 69-71.
    • 章蓬陽, 邵帥. Android?異步框架的研究與設(shè)計[J].?軟件, 2016, 37(02): 150-154.
    • 毛昊. 一種服務于 Android 移動設(shè)備的自適應滾屏技術(shù)[J]. 軟件, 2018, 39(3): 145-149.

    猜你喜歡
    圖表繪制組件
    Art on coffee cups
    無人機智能巡檢在光伏電站組件診斷中的應用
    新型碎邊剪刀盤組件
    U盾外殼組件注塑模具設(shè)計
    放學后
    風起新一代光伏組件膜層:SSG納米自清潔膜層
    在轉(zhuǎn)變中繪制新藍圖
    VBA在宗地圖繪制中的應用
    18+在线观看网站| 999久久久精品免费观看国产| 午夜免费成人在线视频| 成年女人永久免费观看视频| 欧美色视频一区免费| 高清在线国产一区| 成人高潮视频无遮挡免费网站| 悠悠久久av| 亚洲美女视频黄频| 亚洲av熟女| 夜夜夜夜夜久久久久| 最近最新中文字幕大全电影3| 午夜久久久久精精品| 欧美绝顶高潮抽搐喷水| 五月伊人婷婷丁香| 国产精品久久久久久人妻精品电影| 国产中年淑女户外野战色| 观看免费一级毛片| 亚洲中文字幕一区二区三区有码在线看| 国产一区在线观看成人免费| 搡老妇女老女人老熟妇| 精品午夜福利视频在线观看一区| 国产精品一区二区三区四区免费观看 | 精品福利观看| 他把我摸到了高潮在线观看| 99久久无色码亚洲精品果冻| 99久久成人亚洲精品观看| 岛国在线观看网站| www.色视频.com| 岛国在线免费视频观看| 一级黄色大片毛片| 亚洲激情在线av| 欧美在线一区亚洲| 国产高清videossex| 免费看光身美女| 无遮挡黄片免费观看| 天天添夜夜摸| 老司机福利观看| 特级一级黄色大片| 久久久久亚洲av毛片大全| 亚洲国产欧美人成| 国产成人av教育| 丁香六月欧美| 亚洲专区中文字幕在线| 天天添夜夜摸| 又爽又黄无遮挡网站| 一本综合久久免费| 丁香欧美五月| 老司机午夜十八禁免费视频| 99精品在免费线老司机午夜| 夜夜躁狠狠躁天天躁| h日本视频在线播放| 五月伊人婷婷丁香| 中亚洲国语对白在线视频| svipshipincom国产片| 亚洲国产精品合色在线| 日本 av在线| 亚洲黑人精品在线| 最近最新中文字幕大全电影3| 九九在线视频观看精品| 美女高潮喷水抽搐中文字幕| 一进一出抽搐动态| 国产成+人综合+亚洲专区| 国产野战对白在线观看| 久久久久久久精品吃奶| 国产综合懂色| 国内少妇人妻偷人精品xxx网站| 国产欧美日韩精品亚洲av| 日韩亚洲欧美综合| 色综合婷婷激情| 国产精品久久久久久亚洲av鲁大| 欧美高清成人免费视频www| 国产免费一级a男人的天堂| 国产成年人精品一区二区| 毛片女人毛片| 一区二区三区国产精品乱码| 神马国产精品三级电影在线观看| 亚洲av免费高清在线观看| 午夜精品一区二区三区免费看| 一区二区三区激情视频| 国产一区二区激情短视频| 一进一出抽搐动态| 757午夜福利合集在线观看| www日本黄色视频网| 久久6这里有精品| 内地一区二区视频在线| 亚洲av五月六月丁香网| 深夜精品福利| 日本撒尿小便嘘嘘汇集6| 久久久久免费精品人妻一区二区| 精品国产三级普通话版| 好男人在线观看高清免费视频| 日韩大尺度精品在线看网址| 此物有八面人人有两片| 18禁在线播放成人免费| 久久草成人影院| 日本熟妇午夜| 精品乱码久久久久久99久播| 很黄的视频免费| 国产午夜精品论理片| 日韩精品青青久久久久久| 久久久久久国产a免费观看| 午夜激情福利司机影院| 亚洲欧美日韩东京热| eeuss影院久久| 91久久精品国产一区二区成人 | 精品电影一区二区在线| 综合色av麻豆| 亚洲久久久久久中文字幕| av天堂中文字幕网| 波多野结衣高清作品| 国产真实乱freesex| 小蜜桃在线观看免费完整版高清| 午夜福利欧美成人| 十八禁人妻一区二区| 淫妇啪啪啪对白视频| 亚洲成人久久性| 有码 亚洲区| 国产成人av教育| 亚洲一区二区三区不卡视频| 一进一出好大好爽视频| 真人一进一出gif抽搐免费| 一区二区三区国产精品乱码| 亚洲国产精品sss在线观看| 搡老妇女老女人老熟妇| 夜夜躁狠狠躁天天躁| 嫩草影视91久久| 极品教师在线免费播放| 天堂影院成人在线观看| 欧美一区二区精品小视频在线| 综合色av麻豆| 欧美一级毛片孕妇| 免费av不卡在线播放| 岛国视频午夜一区免费看| 国产欧美日韩一区二区精品| 亚洲最大成人中文| www.999成人在线观看| 国产美女午夜福利| 熟女电影av网| 美女高潮喷水抽搐中文字幕| 又爽又黄无遮挡网站| 精品福利观看| 国产精品日韩av在线免费观看| 亚洲人成伊人成综合网2020| 国产精品乱码一区二三区的特点| 男女做爰动态图高潮gif福利片| 国产伦人伦偷精品视频| 国产色爽女视频免费观看| ponron亚洲| 亚洲精品粉嫩美女一区| 日韩欧美在线二视频| 国产午夜福利久久久久久| 99在线人妻在线中文字幕| 老司机午夜十八禁免费视频| 在线观看免费视频日本深夜| 听说在线观看完整版免费高清| 母亲3免费完整高清在线观看| 桃色一区二区三区在线观看| 日本一本二区三区精品| 小蜜桃在线观看免费完整版高清| 精品一区二区三区视频在线观看免费| 99精品欧美一区二区三区四区| 国产真实乱freesex| 亚洲无线观看免费| 日韩欧美三级三区| 夜夜夜夜夜久久久久| 白带黄色成豆腐渣| 国产亚洲欧美在线一区二区| 内地一区二区视频在线| 久久久久亚洲av毛片大全| 亚洲国产精品成人综合色| 尤物成人国产欧美一区二区三区| 久久久久亚洲av毛片大全| 色播亚洲综合网| 午夜免费男女啪啪视频观看 | 日本黄大片高清| e午夜精品久久久久久久| 精品福利观看| 噜噜噜噜噜久久久久久91| 精品日产1卡2卡| 全区人妻精品视频| 国产黄色小视频在线观看| 99久久成人亚洲精品观看| 日韩成人在线观看一区二区三区| 亚洲内射少妇av| 国产97色在线日韩免费| 999久久久精品免费观看国产| 俄罗斯特黄特色一大片| 91麻豆av在线| 国产成+人综合+亚洲专区| 亚洲成人精品中文字幕电影| 免费看美女性在线毛片视频| 国产成人啪精品午夜网站| 黄色成人免费大全| 国产精品久久久人人做人人爽| 亚洲黑人精品在线| 一卡2卡三卡四卡精品乱码亚洲| 黑人欧美特级aaaaaa片| 中文字幕高清在线视频| 日本黄色视频三级网站网址| 国产成人系列免费观看| 亚洲av日韩精品久久久久久密| 国产亚洲精品久久久com| 成人鲁丝片一二三区免费| 精品久久久久久久久久免费视频| 在线观看66精品国产| 最好的美女福利视频网| 天堂动漫精品| 一区二区三区免费毛片| 黄色丝袜av网址大全| 老熟妇乱子伦视频在线观看| 久久久成人免费电影| 日韩有码中文字幕| 欧美日韩综合久久久久久 | 亚洲一区二区三区色噜噜| 偷拍熟女少妇极品色| av黄色大香蕉| 欧美在线黄色| 精品无人区乱码1区二区| av福利片在线观看| 性色av乱码一区二区三区2| 男女那种视频在线观看| 少妇丰满av| 欧美日韩一级在线毛片| 老司机在亚洲福利影院| 免费看美女性在线毛片视频| 一级毛片高清免费大全| 99精品欧美一区二区三区四区| 欧美3d第一页| 日韩免费av在线播放| 日本 欧美在线| 欧美高清成人免费视频www| 18禁国产床啪视频网站| 色视频www国产| 热99在线观看视频| 日本黄色片子视频| 国内精品美女久久久久久| 18禁美女被吸乳视频| 日本一本二区三区精品| eeuss影院久久| bbb黄色大片| 一个人看的www免费观看视频| 国产精品日韩av在线免费观看| 亚洲第一电影网av| www日本黄色视频网| 操出白浆在线播放| 国产精品1区2区在线观看.| 午夜福利免费观看在线| 午夜精品一区二区三区免费看| 欧美bdsm另类| 欧美3d第一页| av天堂在线播放| 男插女下体视频免费在线播放| 又黄又粗又硬又大视频| 长腿黑丝高跟| 真实男女啪啪啪动态图| 九九久久精品国产亚洲av麻豆| 亚洲黑人精品在线| 波多野结衣巨乳人妻| 国产精品久久久久久精品电影| 在线看三级毛片| 色哟哟哟哟哟哟| 欧美在线一区亚洲| 日本熟妇午夜| 亚洲性夜色夜夜综合| 两个人看的免费小视频| 亚洲激情在线av| 国产精品久久久久久久久免 | 日韩成人在线观看一区二区三区| aaaaa片日本免费| 一区二区三区激情视频| 久久久久国内视频| 手机成人av网站| 俄罗斯特黄特色一大片| 亚洲国产欧美网| 久久中文看片网| 熟女少妇亚洲综合色aaa.| 伊人久久大香线蕉亚洲五| 禁无遮挡网站| 麻豆成人av在线观看| 亚洲av一区综合| 日日摸夜夜添夜夜添小说| 国产精品,欧美在线| 国产精品久久久久久久久免 | 精品国产三级普通话版| 欧美极品一区二区三区四区| 午夜福利18| 午夜精品久久久久久毛片777| 免费av不卡在线播放| 性色av乱码一区二区三区2| 麻豆一二三区av精品| 欧美黄色片欧美黄色片| 九九在线视频观看精品| 一个人观看的视频www高清免费观看| 在线观看舔阴道视频| 变态另类丝袜制服| 一级毛片女人18水好多| 精品乱码久久久久久99久播| 欧美大码av| 午夜a级毛片| 国产成人欧美在线观看| 国产真实伦视频高清在线观看 | tocl精华| 久久精品91蜜桃| 天天躁日日操中文字幕| 岛国在线观看网站| 国产精品精品国产色婷婷| 成人一区二区视频在线观看| 一二三四社区在线视频社区8| 精品人妻一区二区三区麻豆 | 首页视频小说图片口味搜索| 国产精品影院久久| 亚洲欧美激情综合另类| 国产高清视频在线播放一区| 嫁个100分男人电影在线观看| 手机成人av网站| 午夜激情福利司机影院| 欧美乱色亚洲激情| 亚洲中文字幕一区二区三区有码在线看| 欧美成人免费av一区二区三区| 精品福利观看| 19禁男女啪啪无遮挡网站| 狠狠狠狠99中文字幕| 国产淫片久久久久久久久 | 在线免费观看的www视频| 午夜激情欧美在线| 99视频精品全部免费 在线| 欧美性猛交╳xxx乱大交人| 亚洲在线自拍视频| 九九热线精品视视频播放| 国产精品永久免费网站| 91字幕亚洲| 亚洲aⅴ乱码一区二区在线播放| 日本在线视频免费播放| 黄色日韩在线| 男女下面进入的视频免费午夜| 欧美成人a在线观看| 国产欧美日韩精品一区二区| 丰满的人妻完整版| 麻豆国产av国片精品| 搞女人的毛片| 精品乱码久久久久久99久播| 日本撒尿小便嘘嘘汇集6| 在线a可以看的网站| 久久精品综合一区二区三区| 亚洲精品乱码久久久v下载方式 | 欧美成狂野欧美在线观看| 亚洲国产日韩欧美精品在线观看 | 日本三级黄在线观看| 我的老师免费观看完整版| 狠狠狠狠99中文字幕| 真实男女啪啪啪动态图| 国产高清视频在线观看网站| 国产精品电影一区二区三区| 国产亚洲欧美在线一区二区| 欧美高清成人免费视频www| 久久久国产精品麻豆| 国产激情欧美一区二区| 国产蜜桃级精品一区二区三区| 成熟少妇高潮喷水视频| 婷婷六月久久综合丁香| www.熟女人妻精品国产| www.色视频.com| 日本三级黄在线观看| 亚洲美女视频黄频| 国产又黄又爽又无遮挡在线| 88av欧美| 日日夜夜操网爽| 亚洲精品国产精品久久久不卡| 天堂网av新在线| 欧美黄色片欧美黄色片| 精品国内亚洲2022精品成人| 国产一区二区激情短视频| 99久久精品一区二区三区| 亚洲精品国产精品久久久不卡| 国产激情欧美一区二区| or卡值多少钱| 两性午夜刺激爽爽歪歪视频在线观看| 亚洲欧美一区二区三区黑人| 网址你懂的国产日韩在线| 亚洲五月天丁香| 成人国产综合亚洲| 最近最新免费中文字幕在线| 搞女人的毛片| 女生性感内裤真人,穿戴方法视频| 麻豆成人午夜福利视频| 亚洲国产精品成人综合色| 欧美日韩亚洲国产一区二区在线观看| 欧美日韩综合久久久久久 | 日本黄大片高清| 极品教师在线免费播放| 国产成人欧美在线观看| 一个人看视频在线观看www免费 | av片东京热男人的天堂| 成人高潮视频无遮挡免费网站| 午夜亚洲福利在线播放| 国产成+人综合+亚洲专区| 久久精品影院6| 国产单亲对白刺激| 此物有八面人人有两片| 男插女下体视频免费在线播放| 伊人久久精品亚洲午夜| 少妇人妻精品综合一区二区 | or卡值多少钱| 精品久久久久久久久久久久久| 日韩成人在线观看一区二区三区| 可以在线观看的亚洲视频| 欧美最新免费一区二区三区 | 美女高潮的动态| 精品久久久久久久末码| 无限看片的www在线观看| 淫秽高清视频在线观看| 天堂网av新在线| 国产高清视频在线观看网站| 老司机午夜十八禁免费视频| 国产视频一区二区在线看| 欧美激情在线99| 日韩国内少妇激情av| 天堂动漫精品| 久久伊人香网站| 日韩成人在线观看一区二区三区| 国内精品久久久久久久电影| 国语自产精品视频在线第100页| 长腿黑丝高跟| 高潮久久久久久久久久久不卡| 欧美午夜高清在线| 亚洲av免费高清在线观看| 99国产精品一区二区三区| 久久精品影院6| 九色国产91popny在线| www日本黄色视频网| 午夜激情福利司机影院| 亚洲中文字幕一区二区三区有码在线看| 夜夜爽天天搞| 日本熟妇午夜| av在线天堂中文字幕| 可以在线观看毛片的网站| 99久久精品热视频| 女人被狂操c到高潮| 久久欧美精品欧美久久欧美| 日韩亚洲欧美综合| 国产亚洲精品久久久久久毛片| 91在线精品国自产拍蜜月 | 噜噜噜噜噜久久久久久91| 99热精品在线国产| 丰满人妻一区二区三区视频av | 又紧又爽又黄一区二区| 国产主播在线观看一区二区| 少妇的丰满在线观看| 午夜福利在线在线| www.www免费av| 欧美日韩综合久久久久久 | 国产一区二区在线av高清观看| 日本五十路高清| 免费高清视频大片| 亚洲久久久久久中文字幕| 婷婷精品国产亚洲av在线| tocl精华| 精品不卡国产一区二区三区| 两个人视频免费观看高清| 看片在线看免费视频| 丰满人妻一区二区三区视频av | 欧美区成人在线视频| 亚洲国产精品成人综合色| 欧美乱色亚洲激情| 综合色av麻豆| 成人欧美大片| 哪里可以看免费的av片| 真实男女啪啪啪动态图| www.色视频.com| 亚洲国产中文字幕在线视频| 亚洲成人中文字幕在线播放| 黄色片一级片一级黄色片| 亚洲一区二区三区色噜噜| 高清毛片免费观看视频网站| 成年女人看的毛片在线观看| 一级黄片播放器| 男人舔女人下体高潮全视频| 怎么达到女性高潮| 午夜亚洲福利在线播放| 国产精品久久久久久久电影 | 3wmmmm亚洲av在线观看| 国产aⅴ精品一区二区三区波| 欧美一区二区国产精品久久精品| 日本熟妇午夜| 亚洲av免费高清在线观看| 精品人妻1区二区| 法律面前人人平等表现在哪些方面| 亚洲,欧美精品.| 看黄色毛片网站| 色播亚洲综合网| 三级国产精品欧美在线观看| 国产69精品久久久久777片| 久久精品国产亚洲av香蕉五月| 欧美最黄视频在线播放免费| 51午夜福利影视在线观看| 中文亚洲av片在线观看爽| 99热6这里只有精品| 国内揄拍国产精品人妻在线| 日日夜夜操网爽| 18禁美女被吸乳视频| 亚洲 欧美 日韩 在线 免费| 精品无人区乱码1区二区| 亚洲片人在线观看| 国产伦精品一区二区三区四那| 狠狠狠狠99中文字幕| 999久久久精品免费观看国产| 97超级碰碰碰精品色视频在线观看| avwww免费| 精品国内亚洲2022精品成人| 日日干狠狠操夜夜爽| 亚洲中文字幕一区二区三区有码在线看| 亚洲成a人片在线一区二区| avwww免费| 成人一区二区视频在线观看| 亚洲av熟女| 亚洲成人久久性| 特大巨黑吊av在线直播| 欧美黑人欧美精品刺激| 国产成+人综合+亚洲专区| 俺也久久电影网| av中文乱码字幕在线| 国产在视频线在精品| 午夜福利免费观看在线| 免费av不卡在线播放| 51国产日韩欧美| 热99在线观看视频| 看黄色毛片网站| 精品久久久久久久末码| 国产精品影院久久| 级片在线观看| 亚洲性夜色夜夜综合| 亚洲人成网站在线播放欧美日韩| 97超级碰碰碰精品色视频在线观看| 国产免费av片在线观看野外av| 波多野结衣巨乳人妻| 最近最新免费中文字幕在线| 久久久久亚洲av毛片大全| 国产高清videossex| 99在线人妻在线中文字幕| 99久久99久久久精品蜜桃| 亚洲av电影在线进入| 99久久九九国产精品国产免费| 亚洲国产色片| 国产不卡一卡二| 99精品在免费线老司机午夜| 色播亚洲综合网| 又粗又爽又猛毛片免费看| 亚洲男人的天堂狠狠| 国产欧美日韩精品亚洲av| 亚洲国产精品合色在线| 欧美日韩一级在线毛片| 久久这里只有精品中国| 日日摸夜夜添夜夜添小说| 亚洲黑人精品在线| 日韩欧美国产一区二区入口| 99久久成人亚洲精品观看| 91久久精品电影网| 法律面前人人平等表现在哪些方面| 琪琪午夜伦伦电影理论片6080| 亚洲av二区三区四区| 非洲黑人性xxxx精品又粗又长| 99久久精品热视频| 好看av亚洲va欧美ⅴa在| 禁无遮挡网站| eeuss影院久久| 麻豆一二三区av精品| 一边摸一边抽搐一进一小说| 村上凉子中文字幕在线| 日韩大尺度精品在线看网址| 99久久无色码亚洲精品果冻| 欧美又色又爽又黄视频| 国产在视频线在精品| 日本免费a在线| 不卡一级毛片| 欧美一级毛片孕妇| 国产精品日韩av在线免费观看| 又紧又爽又黄一区二区| 成人鲁丝片一二三区免费| 天堂√8在线中文| 亚洲av五月六月丁香网| 操出白浆在线播放| 午夜免费观看网址| 日韩国内少妇激情av| 日韩亚洲欧美综合| 国产精品香港三级国产av潘金莲| 天堂av国产一区二区熟女人妻| 亚洲精品久久国产高清桃花| 女人高潮潮喷娇喘18禁视频| 国产精品1区2区在线观看.| aaaaa片日本免费| 中文字幕人妻丝袜一区二区| 日韩国内少妇激情av| 真人一进一出gif抽搐免费| 久久亚洲精品不卡| 在线播放无遮挡| 欧美乱妇无乱码| 精品国产三级普通话版| 在线观看舔阴道视频| 好男人在线观看高清免费视频| 日本 av在线| 久久精品国产综合久久久| 毛片女人毛片| 精品国产三级普通话版| 亚洲无线观看免费| 别揉我奶头~嗯~啊~动态视频| 男女做爰动态图高潮gif福利片| 成人永久免费在线观看视频| 欧美日韩一级在线毛片| 高清日韩中文字幕在线| 国产免费男女视频| 欧美日韩福利视频一区二区| 国产欧美日韩一区二区三| 熟妇人妻久久中文字幕3abv| 一进一出抽搐动态|