精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

鴻蒙開發板3516遙控3861智能小車系列(一)C++開發界面應用

開發
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

[[379806]]

 想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

老規矩先上該應用的演示視頻https://harmonyos.51cto.com/show/3006

首先立flag:用3516做一款獨一無二的遙控器,然后用這款遙控器去盡情的操縱3861這款智能小車。第一呢,肯定不能做的太粗糙了,打工人也要有點兒追求的。第二呢,圍繞著源碼,發現一些更多的好東西,比如這次C++界面開發中大多數API,官方是暫未給出的,這就需要是我去摸索源碼。其中最重要的一點,我想看看能否在3516和3861組成局域網之后,能否利用分布式軟總線能力去調用(當然,這個可能會吹牛,畢竟釗哥說他目前還沒調通)。

flag立完了,這個能不能實現.....我盡力吧!

首先呢,大家得搭好3516的環境,我最近之所以鴿了這么長時間沒有發文章。也有一部分這個原因,因為我本身用的系統是ubuntu20.04,然后在其上搭windows虛擬機來燒系統以及刷應用。我在這個過程中是“編代碼3分鐘,刷系統3天”,這里我也分享一下我遇到的坑,如果大家也有我這種環境配置的話,希望可以幫助到大家。最開始的時候,我是用的virtualBox虛擬機來搭的windows,這個windows來玩3861的時候別提多順暢了,當我以為3516也會一樣順暢的時候,我發現我錯了,裝上3516的驅動后,我的windows開始了無限自動重啟模式,我在嘗試著修復無果后,一度想著放棄....但是作為一名合格的碼農,怎么能隨便放棄呢!然后抱著試試看的態度,我裝了一個vmware,沒想到啊,真是“山重水復疑無路,柳暗花明又一村”。3516的環境就這樣被搭好了!好了,說了這么長時間的廢話:總結來說就是如果你的本體是linux,那么你在裝window的時候虛擬機要選用vmware,不要用virtualBox(PS:我這里本體用了linux,不是裝叉,因為工作的原因導致我畢業之后沒就用過window,慢慢也就習慣了linux了)

然后呢,具體搭建環境的過程,社區置頂處有文章介紹,在window為本體,linux做虛擬機的情況下,難度還是要小很多的,所以各位大佬也不用太擔心這個過程。

好的,作為這個系列的第一篇,也就是實現這個目標的第一步:我先在3516上做一個遙控器的應用,當然這個應用不追求什么完美,但至少也得能看得過去,所以我自認為我做的還是很認真的,演示視頻鏈接見開頭,好不好看,大家可以留言評論一撥兒。

下面進入正題,我們來看C++的應用界面開發:

1.harmonyos的設備開發的圖形圖像子系統

首先發出來官網該方面資料介紹的鏈接:https://device.harmonyos.com/cn/docs/develop/subsystems/oem_subsys_graphic_des-0000001051677150#ZH-CN_TOPIC_0000001051770388__section73736284117

HarmonyOS圖形系統,提供基礎UI組件和容器類組件,包括button、image、label、list、animator、scroll view、swipe view、font、clock、chart、canvas、slider、layout等。

不過呢,目前官網給出的示例還是十分有限的,如果想要按自己的想法去構思應用的話,很明顯這些官方的介紹還是遠遠不夠的,下面我給出這部分源碼的代碼位置:

其中絕大多數的頭文件在:foundation/graphic/lite/interfaces/kits/ui/

其實foundation/graphic/就存放了源碼中的圖形模塊,各位大佬可以盡情去相關模塊源碼中遨游,然后能給我點兒指導也是極好的。

在這里我們先整理一下,目前已經開放的,包括源碼中已經有的圖形模塊可以分為兩部分一部分是容器類組件,一部分是普通組件,其中容器類組件有如下圖:

普通類組件如下圖:

容器類組件:


另外據我目前已有的探索結論是:一個主界面有一個RootView,使用GetWindowRootView來獲得,大家可以把它看成一個界面中最大的容器類組件,然后大家就是把界面相關的容器類組件,普通類組件往上堆就可以。當然別的多界面的實現方式應該不同。

2.開始正式該應用的實現過程:


如上圖:大家可以看到這個整個界面的布局:其中左上角的小箭頭是退出應用的,然后它的右邊是一行文字動畫,接著往下是兩個label來顯示當前遙控器的模式和小車的狀態,緊接著是兩個按鈕。接下來是整個SWIPE容器組件,可以滑動來實現界面的切換。

下面就按照這個順序來介紹:其中重點是小箭頭的功能的實現和SWIPE容器組件的實現,別的么,其實不值一提。

2.1 退出應用功能的實現

PS:這個功能的實現,完全沒有介紹,完全是自己看著源碼琢磨出來的,并且我還發現了源碼中這塊兒寫的有BUG,源碼中會有點擊不中的情況。

2.1.1 先拿代碼把這個圖標畫出來:

  1. static const char* const BACK_ICON_PATH = "/controlCar/assets/entry/resources/base/media/ic_back.png"
  2. static char g_backIconAbsolutePath[MAX_PATH_LENGTH] = {0}; 
  3. const char* pathHeader = GetSrcPath(); 
  4. if(sprintf_s(g_backIconAbsolutePath,MAX_PATH_LENGTH,"%s%s",pathHeader,BACK_ICON_PATH) < 0){ 
  5.     printf("GalleryAbilitySlice::OnStart | g_backIconAbsolutePath error"); 
  6.     return
  7.     backIcon = new UIImageView(); 
  8.     backIcon->SetPosition(0, 0); 
  9.     backIcon->SetSrc(g_backIconAbsolutePath); 
  10.     backIcon->SetTouchable(true); 
  11.     backIcon->Resize(40,40); 

 2.1.2 實現退出功能

  1. auto onClick = [this] (UIView& view, const Event& event) -> bool { 
  2.      TerminateAbility(); 
  3.      return true
  4.  }; 
  5.  backIconListener = new EventListener(onClick, nullptr); 
  6.  backIcon->SetOnClickListener(backIconListener); 

 2.2 字幕滾動

是不是覺得很難,剛開始我也覺得是,然并卵,太TM簡單了,只需要調用SetLineBreakMode這個API就可以了,下面是這個組件的實現代碼。

  1. label_title = new UILabel(); 
  2.    label_title->SetPosition(280,0); 
  3.    label_title->Resize(500,40); 
  4.    label_title->SetTextColor(Color::Red()); 
  5.    label_title->SetText("歡迎各位大佬使用本智能小車遙控器,希望各位大佬能玩的開心!"); 
  6.    label_title->SetFont("SourceHanSansSC-Regular.otf",30); 
  7.    label_title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE); 

 2.3 顯示的兩個label和兩個button按鈕

這個嘛,太簡單了,就不解釋了,直接來最簡單的設置就可以了,見下面代碼

  1. //設置顯示遙控器模式狀態label 
  2.    label_remote_state = new UILabel(); 
  3.    label_remote_state->SetPosition(10,40); 
  4.    label_remote_state->Resize(300,40); 
  5.    label_remote_state->SetTextColor(Color::Green()); 
  6.    label_remote_state->SetText("當前模式:基礎模式"); 
  7.    label_remote_state->SetFont("SourceHanSansSC-Regular.otf",20); 
  8.  
  9.    //設置label 
  10.    label = new UILabel(); 
  11.    label->SetPosition(300,40); 
  12.    label->SetStyle(STYLE_BACKGROUND_COLOR,Color::Gray().full); 
  13.    label->Resize(350,40); 
  14.    label->SetText("當前小車連接狀態:正在檢測中..."); 
  15.    label->SetTextColor(Color::Green()); 
  16.    label->SetFont("SourceHanSansSC-Regular.otf", 20); 
  17.  
  18.    //設置連接小車按鈕 
  19.    bt_connect = new UILabelButton(); 
  20.    bt_connect->SetPosition(700,40,100,40); 
  21.    bt_connect->SetTextColor(Color::Green()); 
  22.    bt_connect->SetText("連接小車"); 
  23.  
  24.    //設置斷開連接按鈕 
  25.    bt_disconnect = new UILabelButton(); 
  26.    bt_disconnect->SetPosition(850,40,100,40); 
  27.    bt_disconnect->SetTextColor(Color::Green()); 
  28.    bt_disconnect->SetText("斷開連接"); 

 2.3 整個SWIPE容器組件的實現

沒錯,這部分是整個應用實現的最困難處,文檔中介紹基本等于沒有,整個SWIPE容器實現的技術難點:應該是兩點:

  • - 1.設置滑動回調類
  • - 2.在SWIPE使用了GridLayout來實現整個遙控器按鈕的設計。

2.3.1 先看如何利用GridLayout來實現遙控器按鈕的實現

  1. gridlayout = new GridLayout(); 
  2.  gridlayout->SetPosition(0,0,900,400); 
  3.  gridlayout->SetRows(3); 
  4.  gridlayout->SetCols(5); 
  5.  gridlayout->SetLayoutDirection(LAYOUT_HOR); 
  6.  
  7.  bt_left_one = new UILabelButton(); 
  8.  bt_left_one->SetPosition(0,0,100,100); 
  9.  bt_left_one->SetVisible(false); 
  10.  
  11.  bt_left_up = new UILabelButton(); 
  12.  bt_left_up->SetPosition(0,0,100,100); 
  13.  bt_left_up->SetImageSrc(g_left_upAbsolutePath,g_left_upAbsolutePath); 
  14.  bt_left_up->SetImagePosition(0,0); 
  15.  bt_left_up->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::White().full,UIButton::RELEASED); 
  16.  bt_left_up->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::RELEASED); 
  17.  bt_left_up->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::Red().full,UIButton::UIButton::PRESSED); 
  18.  bt_left_up->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::UIButton::PRESSED); 
  19.  
  20.  bt_up = new UILabelButton(); 
  21.  bt_up->SetPosition(0,0,100,100); 
  22.  bt_up->SetImageSrc(g_upAbsolutePath,g_upAbsolutePath); 
  23.  bt_up->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::White().full,UIButton::RELEASED); 
  24.  bt_up->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::RELEASED); 
  25.  bt_up->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::Red().full,UIButton::UIButton::PRESSED); 
  26.  bt_up->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::UIButton::PRESSED); 
  27.  
  28.  bt_right_up = new UILabelButton(); 
  29.  bt_right_up->SetPosition(0,0,100,100); 
  30.  bt_right_up->SetImageSrc(g_right_upAbsolutePath,g_right_upAbsolutePath); 
  31.  bt_right_up->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::White().full,UIButton::RELEASED); 
  32.  bt_right_up->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::RELEASED); 
  33.  bt_right_up->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::Red().full,UIButton::UIButton::PRESSED); 
  34.  bt_right_up->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::UIButton::PRESSED); 
  35.  
  36.  bt_right_one = new UILabelButton(); 
  37.  bt_right_one->SetPosition(0,0,100,100); 
  38.  bt_right_one->SetVisible(false); 
  39.  
  40.  bt_left_two = new UILabelButton(); 
  41.  bt_left_two->SetPosition(0,0,100,100); 
  42.  bt_left_two->SetVisible(false); 
  43.  
  44.  bt_left = new UILabelButton(); 
  45.  bt_left->SetPosition(0,0,100,100); 
  46.  bt_left->SetImageSrc(g_leftAbsolutePath,g_leftAbsolutePath); 
  47.  bt_left->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::White().full,UIButton::RELEASED); 
  48.  bt_left->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::RELEASED); 
  49.  bt_left->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::Red().full,UIButton::UIButton::PRESSED); 
  50.  bt_left->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::UIButton::PRESSED); 
  51.  
  52.  bt_stop = new UILabelButton(); 
  53.  bt_stop->SetPosition(0,0,100,100); 
  54.  bt_stop->SetStyle(STYLE_BORDER_RADIUS,0); 
  55.  bt_stop->SetImageSrc(g_stopAbsolutePath,g_stopAbsolutePath); 
  56.  bt_stop->SetStyle(STYLE_BACKGROUND_COLOR,Color::White().full); 
  57.  
  58.  bt_right = new UILabelButton(); 
  59.  bt_right->SetPosition(0,0,100,100); 
  60.  bt_right->SetImageSrc(g_rightAbsolutePath,g_rightAbsolutePath); 
  61.  bt_right->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::White().full,UIButton::RELEASED); 
  62.  bt_right->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::RELEASED); 
  63.  bt_right->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::Red().full,UIButton::UIButton::PRESSED); 
  64.  bt_right->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::UIButton::PRESSED); 
  65.  
  66.  bt_right_two = new UILabelButton(); 
  67.  bt_right_two->SetPosition(0,0,100,100); 
  68.  bt_right_two->SetVisible(false); 
  69.  
  70.  bt_left_three = new UILabelButton(); 
  71.  bt_left_three->SetPosition(0,0,100,100); 
  72.  bt_left_three->SetVisible(false); 
  73.  
  74.  bt_left_down = new UILabelButton(); 
  75.  bt_left_down->SetPosition(0,0,100,100); 
  76.  bt_left_down->SetImageSrc(g_left_downAbsolutePath,g_left_downAbsolutePath); 
  77.  bt_left_down->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::White().full,UIButton::RELEASED); 
  78.  bt_left_down->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::RELEASED); 
  79.  bt_left_down->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::Red().full,UIButton::UIButton::PRESSED); 
  80.  bt_left_down->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::UIButton::PRESSED); 
  81.  
  82.  bt_down = new UILabelButton(); 
  83.  bt_down->SetPosition(0,0,100,100); 
  84.  bt_down->SetImageSrc(g_downAbsolutePath,g_downAbsolutePath); 
  85.  bt_down->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::White().full,UIButton::RELEASED); 
  86.  bt_down->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::RELEASED); 
  87.  bt_down->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::Red().full,UIButton::UIButton::PRESSED); 
  88.  bt_down->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::UIButton::PRESSED); 
  89.  
  90.  bt_right_down = new UILabelButton(); 
  91.  bt_right_down->SetPosition(0,0,100,100); 
  92.  bt_right_down->SetImageSrc(g_right_downAbsolutePath,g_right_downAbsolutePath); 
  93.  bt_right_down->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::White().full,UIButton::RELEASED); 
  94.  bt_right_down->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::RELEASED); 
  95.  bt_right_down->SetStyleForState(STYLE_BACKGROUND_COLOR,Color::Red().full,UIButton::UIButton::PRESSED); 
  96.  bt_right_down->SetStyleForState(STYLE_BORDER_RADIUS,0,UIButton::UIButton::PRESSED); 
  97.  
  98.  bt_right_three = new UILabelButton(); 
  99.  bt_right_three->SetPosition(0,0,100,100); 
  100.  bt_right_three->SetVisible(false); 
  101.  
  102.  gridlayout->Add(bt_left_one); 
  103.  gridlayout->Add(bt_left_up); 
  104.  gridlayout->Add(bt_up); 
  105.  gridlayout->Add(bt_right_up); 
  106.  gridlayout->Add(bt_right_one); 
  107.  gridlayout->Add(bt_left_two); 
  108.  gridlayout->Add(bt_left); 
  109.  gridlayout->Add(bt_stop); 
  110.  gridlayout->Add(bt_right); 
  111.  gridlayout->Add(bt_right_two); 
  112.  gridlayout->Add(bt_left_three); 
  113.  gridlayout->Add(bt_left_down); 
  114.  gridlayout->Add(bt_down); 
  115.  gridlayout->Add(bt_right_down); 
  116.  gridlayout->Add(bt_right_three); 
  117.  gridlayout->LayoutChildren();   

 大家可以看到這里我其實寫了一個很挫的代碼,為了布局而用了15個按鈕,然后把左右兩邊給隱藏掉,其實寫完之后,回顧的時候,才發現根本不需要這么做,根據現有的布局代碼完全可以直接實現。這里我想提一下就是為了實現按鈕的點擊效果我在源碼中找了好久,才測試出了一個比較好用的API:SetStyleForState

2.3.2 設置滑動回調類

首先這個類的原型是:void SetOnSwipeListener(OnSwipeListener& onSwipeListener)

由于之前C++只是拿QT寫過一些界面,只接觸傳函數的,第一次接觸這種傳類的,所以一開始還是很蒙蔽的。

下面來看具體實現的細節:

  1. class mySwipeListener : public UISwipeView::OnSwipeListener{ 
  2. public:  
  3.     mySwipeListener(UISwipeView* swipe,UILabel* label): 
  4.     swipe_(swipe),label_(label){}; 
  5.     ~mySwipeListener() {}; 
  6.     virtual void OnSwipe(UISwipeView &view) override 
  7.     { 
  8.         char buf[10] = {0}; 
  9.         // sprintf_s(buf,sizeof(buf),".%d.",swipe_->GetCurrentPage() + 1); 
  10.         switch(swipe_->GetCurrentPage()) 
  11.         { 
  12.             case 0:label_->SetText("當前模式:基礎模式");break; 
  13.             case 1:label_->SetText("當前模式:第二種模式");break; 
  14.             case 2:label_->SetText("當前模式:第三種模式");break; 
  15.             default
  16.                 label_->SetText("Error"); 
  17.         } 
  18.     } 
  19. private: 
  20.     UISwipeView* swipe_ { nullptr }; 
  21.     UILabel* label_ { nullptr }; 
  22. }; 
  23.     swipeListener = new mySwipeListener(swipe,label_remote_state); 
  24.     swipe->SetOnSwipeListener(swipeListener); 

 大家可以看到這種實現是:先繼承參數中的那個類實現一個類,在類中去實現它的純虛函數,這個函數剛好是我們需要實現業務邏輯的。

3.總結

源碼部分就說完了,我在附件中會上傳完整的源碼包和hap包。目前搞這塊兒確實資料很少,不過有源碼,有什么需要就去源碼中去搞.....

這里我算是做了第一步:在3516上寫了一個遙控器,接下來就得去思考如何去連接3861智能小車車了。未完待續......

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請注明出處,否則將追究法律責任。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-06-28 14:30:29

camera組件照片回傳

2021-12-15 15:28:18

鴻蒙HarmonyOS應用

2021-12-30 16:12:07

鴻蒙HarmonyOS應用

2021-05-25 14:47:43

鴻蒙HarmonyOS應用

2021-12-29 16:13:03

鴻蒙HarmonyOS應用

2020-12-29 09:59:01

鴻蒙HarmonyOS智能家居

2020-12-17 10:02:16

鴻蒙Hi3861開發板

2021-08-17 14:40:43

鴻蒙HarmonyOS應用

2022-10-25 14:51:11

設備開發鴻蒙

2020-10-30 17:12:05

Hi3861

2021-06-25 09:28:46

鴻蒙HarmonyOS應用

2020-12-16 10:05:48

鴻蒙開發板Onenet平臺

2020-12-15 11:57:49

Hi3861 HarmonyOS開發板

2020-11-06 10:15:16

HiBurn

2020-10-30 09:48:03

Hi3861開發板get請求

2020-10-14 09:37:03

HiBurn鴻蒙.bin文件

2022-01-05 20:27:45

鴻蒙HarmonyOS應用

2021-12-20 21:01:52

鴻蒙HarmonyOS應用

2021-09-16 10:03:39

鴻蒙HarmonyOS應用

2021-06-25 15:32:13

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

欧美精品一级二级三级| 亚洲精品1区2区| 欧美在线影院一区二区| 亚洲午夜精品一区二区三区| 五月激情丁香网| 99久久激情| 精品第一国产综合精品aⅴ| 北条麻妃69av| 麻豆传媒视频在线观看免费| 国产成人亚洲综合a∨猫咪| 欧美一级淫片aaaaaaa视频| 日韩影视一区二区三区| 奇米一区二区| 91激情在线视频| 91看片淫黄大片91| 国家队第一季免费高清在线观看| 国产一区二区福利| 日韩男女性生活视频| 小泽玛利亚一区二区免费| 天海翼亚洲一区二区三区| 91精品欧美福利在线观看| 鲁一鲁一鲁一鲁一澡| 黄色片免费在线观看| 99精品一区二区三区| 成人国产精品一区二区| 国产美女激情视频| 亚洲欧美一区在线| 色婷婷av一区二区三区在线观看| 中国免费黄色片| 外国成人毛片| 在线看不卡av| 91九色在线观看视频| 51xtv成人影院| 国产精品毛片大码女人| 欧美xxxx黑人又粗又长密月| 亚洲精品97久久中文字幕无码| 另类的小说在线视频另类成人小视频在线| 91精品成人久久| 久久久久久久黄色| 一区二区日韩欧美| 原创国产精品91| 短视频在线观看| 精品久久ai电影| 日韩精品一区二区三区三区免费| 嫩草视频免费在线观看| 91精品国产66| 在线观看日韩av先锋影音电影院| 男女av免费观看| 国产ktv在线视频| 一二三四社区欧美黄| 久久久久久久免费视频| 韩国中文字幕在线| 最新热久久免费视频| 中国一区二区三区| 日韩黄色影院| 国产精品护士白丝一区av| 四虎永久国产精品| av在线电影播放| 国产欧美日韩在线| 亚洲第一导航| 黄网站在线免费| 亚洲人吸女人奶水| 国产一级大片免费看| 欧洲精品二区| 午夜精品爽啪视频| 国产精品333| 97久久香蕉国产线看观看| 色婷婷精品大在线视频| 无码少妇一区二区三区芒果| av久久网站| 欧美裸体bbwbbwbbw| 久久精品亚洲天堂| 2023国产精华国产精品| 日韩激情av在线免费观看| 国产中文字幕一区二区| 精品视频免费| 超鹏97在线| 日本一区二区成人| 伊人色综合久久天天五月婷| 精品视频在线一区二区| 一区二区三区视频在线看| 国产视频在线观看网站| 国内激情视频在线观看| 91成人免费在线视频| 伊人网在线综合| 伊人久久亚洲| 亚洲天堂av综合网| 99成人在线观看| 狠狠色丁香久久综合频道 | aaaaa一级片| 欧美三级美国一级| 久久精品久久久久久| 欧美成人精品激情在线视频| 亚洲另类自拍| 国产精品成人av性教育| 久久露脸国语精品国产91| 男人的天堂成人在线| 国产精品一区二区三区免费视频 | 国产一卡二卡在线播放| 亚洲欧美日韩精品一区二区| 国产免费一区二区三区在线观看| 亚洲精品免费在线观看视频 | 18啪啪污污免费网站| 欧美精品一线| 国产成+人+综合+亚洲欧洲| ,一级淫片a看免费| 99久久精品免费看| 一本一生久久a久久精品综合蜜 | 在线中文字日产幕| 精品国产中文字幕第一页| 久久91亚洲精品中文字幕奶水| 久久久国产精品成人免费| 成人免费观看视频大全| 一本不卡影院| 成人免费视频网址| 免费在线高清av| 亚洲综合色噜噜狠狠| youjizzxxxx18| 国产成人一二片| 日韩在线不卡视频| 五月天综合激情网| 粉嫩久久99精品久久久久久夜| 日本一区二区三区免费观看| 女同一区二区免费aⅴ| 欧美视频一区二| 亚洲一区二区三区综合| 一本到12不卡视频在线dvd| 国产成人精品久久| 日本一级在线观看| 亚洲综合一二三区| 57pao国产成永久免费视频| 亚洲人成亚洲精品| 国语自产精品视频在线看| 国产精品高潮呻吟av| 中文字幕精品一区二区精品绿巨人 | 日韩午夜影院| 亚洲一二三专区| 97精品欧美一区二区三区| 农民人伦一区二区三区| 天堂综合在线播放| 一区二区欧美亚洲| 精品久久久久久久久久久国产字幕 | 成人一二三区| 国产精品成人va在线观看| 日本中文字幕一区二区有码在线| 午夜亚洲国产au精品一区二区| 久久久久亚洲av片无码v| 午夜激情久久| 国产精品欧美一区二区三区奶水| 国产乱视频在线观看| 色综合天天性综合| 精品人妻一区二区三区视频| 亚洲一区二区动漫| 久久综合九色欧美狠狠| 中文字幕高清在线播放| 日韩精品中文字幕有码专区| 中文字幕国产在线观看| 久久综合999| 5月婷婷6月丁香| 日韩av午夜| 热久久免费视频精品| 国产视频网站在线| 欧美午夜精品久久久| 国产欧美小视频| 久久se这里有精品| 大地资源网在线观看免费官网| 嫩呦国产一区二区三区av| 萌白酱国产一区二区| 精品国产九九九| 亚洲高清视频的网址| 熟女丰满老熟女熟妇| 男女精品网站| 国产又黄又爽免费视频| 亚洲第一二区| 欧美亚洲国产另类| av电影在线网| 日韩欧美成人午夜| 久久黄色精品视频| 国产精品免费视频观看| 中文字幕日韩久久| 99热精品在线观看| 亚洲草草视频| 91精品国产自产在线丝袜啪| 欧美有码在线观看| 日本www在线| 亚洲精品720p| 在线免费观看高清视频| 夜夜精品视频一区二区| 欧美狂猛xxxxx乱大交3| 国产一区二区三区黄视频| 黄色www网站| 久久中文视频| 精品999在线观看| 日韩黄色在线| 欧美性在线视频| 成人av黄色| 亚洲欧洲在线观看| av中文字幕播放| 日韩欧美中文字幕在线播放| 亚洲波多野结衣| 99久久精品情趣| 五月天开心婷婷| 国产精品毛片| 男人的天堂视频在线| 亚洲自拍电影| 国产精品视频免费一区| 欧美亚洲人成在线| 欧美在线影院在线视频| 天堂av在线电影| 在线视频一区二区| 秋霞网一区二区| 欧美丰满少妇xxxxx高潮对白| 97人人澡人人爽人人模亚洲| 亚洲欧洲制服丝袜| 熟女少妇内射日韩亚洲| www..com久久爱| 日韩欧美色视频| 国产强伦人妻毛片| 久久美女艺术照精彩视频福利播放 | www.超碰在线| 久久视频在线免费观看| 伦理片一区二区三区| 精品国产一区二区三区四区四| 亚洲一级在线播放| 日本高清不卡视频| 日韩精品一区二区不卡| 亚洲精品福利视频网站| 97精品在线播放| 中日韩av电影| 极品蜜桃臀肥臀-x88av| 26uuu久久天堂性欧美| 国产人成视频在线观看| 成人综合婷婷国产精品久久蜜臀 | av成人app永久免费| 成人做爰www免费看视频网站| 素人啪啪色综合| 日韩av男人的天堂| av日韩亚洲| 日本高清视频一区| 亚洲国产福利| 欧美在线视频免费| 青青青免费在线视频| 久久久久亚洲精品国产| 日本动漫理论片在线观看网站| 久久这里有精品视频| 成人高潮成人免费观看| 欧美精品一区视频| 欧美在线精品一区二区三区| 精品国产欧美一区二区| 国产成人精品白浆久久69| 欧美午夜一区二区| 伊人免费在线观看| 欧美日本高清视频在线观看| 艳妇乳肉豪妇荡乳av| 欧美美女喷水视频| 久久精彩视频| 成人做爰免费视频免费看| 国产福利视频一区| 在线一区视频观看| 成人黄色av网| 日韩一区二区三区高清在线观看| 亚洲最大福利视频| 国产精品超碰| 久久久久久久免费| 成人免费a**址| 亚洲AV无码成人精品一区| 亚洲午夜精品一区 二区 三区| 男女裸体影院高潮| 亚洲精品在线二区| 日本久久精品一区二区| 看电视剧不卡顿的网站| 亚洲精品一二三四| 9i在线看片成人免费| 中文字幕丰满孑伦无码专区| 亚洲国产精品激情在线观看| 久久噜噜色综合一区二区| 一区二区三区毛片| 欧美特黄aaaaaa| 欧美日韩视频在线第一区| www天堂在线| 亚洲精品一区中文字幕乱码| eeuss影院在线播放| 欧美一区二区三区四区五区| 十八禁一区二区三区| 国产一区二区三区在线视频| 八戒八戒神马在线电影| 4438全国成人免费| 欧美激情不卡| 国内精品视频在线播放| 日韩久久精品网| 日韩精品在线视频免费观看| 视频一区欧美精品| 永久看看免费大片| 国产亚洲自拍一区| 久久久久久久黄色| 在线视频你懂得一区二区三区| 国产男男gay网站| 亚洲欧美福利视频| 污视频在线看网站| 国产精品96久久久久久又黄又硬| 高清一区二区三区av| 久久精品aaaaaa毛片| 91精品国产成人观看| 人妻内射一区二区在线视频| 国产精品一卡二卡| 丰满的亚洲女人毛茸茸| 欧美日韩精品国产| 午夜精品久久久久久久99老熟妇| 亚洲欧美成人在线| 国产盗摄精品一区二区酒店| 国产欧美精品va在线观看| 果冻天美麻豆一区二区国产| 91制片厂免费观看| 蜜臀av性久久久久av蜜臀妖精| 波多野结衣影院| 亚洲精品久久久蜜桃| 一级特黄aaaaaa大片| 亚洲人成电影网站色www| 黄色在线观看视频网站| 91精品视频在线免费观看| 精品国产日韩欧美| 欧洲精品一区二区三区久久| 国产精品中文欧美| 久久久免费看片| 欧美日韩午夜激情| 成人久久久精品国产乱码一区二区 | 国产尤物精品| 在线播放黄色av| 国产精品进线69影院| 中文字幕欧美人妻精品一区蜜臀| 亚洲美女在线视频| 在线免费看h| 久久国产精品99久久久久久丝袜| 午夜精品影院| 成人高清在线观看视频| 国产精品天美传媒沈樵| 99超碰在线观看| 国产午夜精品久久久| 超碰在线cao| 国产视频不卡| 国产精品久久久久久99| 日韩欧美一级二级| 菠萝菠萝蜜在线观看| 91亚洲一区精品| 亚洲一区 二区 三区| 一区二区三区国产好的精华液| 国产精品久久久久久久久免费桃花| 久草视频在线免费| 搡老女人一区二区三区视频tv| av在线一区不卡| 一道精品一区二区三区| 久久爱另类一区二区小说| 91嫩草丨国产丨精品| 日韩欧美激情四射| 欧美家庭影院| 国产亚洲福利社区| 国产一区二区三区久久久久久久久| bl动漫在线观看| 色婷婷综合激情| 97超碰人人在线| 91视频88av| 狠色狠色综合久久| 中国美女乱淫免费看视频| 91精品1区2区| 麻豆tv入口在线看| 春色成人在线视频| 国产精品亚洲欧美| 久久丫精品忘忧草西安产品| 欧美色综合影院| 超碰在线caoporn| 国产欧美综合精品一区二区| 久久国产精品久久w女人spa| 日韩人妻无码精品综合区| 欧美色视频一区| 羞羞视频在线观看不卡| 精品国产免费久久久久久尖叫 | 天天影视网天天综合色在线播放| 青青草在线免费视频| 国产一区私人高清影院| 在线欧美不卡| 亚洲精品成人无码| 欧美一区二区三区免费观看视频| а√天堂中文在线资源8| 亚洲人成人99网站| 黑人精品一区二区| 日韩免费观看av| 亚洲一区二区三区| 最近中文字幕无免费| 欧美性猛交xxxx乱大交退制版| 中文字幕在线三区| 久久九九视频| 国产伦精一区二区三区| 免费av网站在线| 久久中国妇女中文字幕| 欧洲亚洲视频| 久久人人爽av| 日韩欧美一区二区三区| 成人免费在线| 色综合666| 91在线播放网址|