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

如何在Android上開發屬于自己的定制化啟動器

譯文
移動開發 Android
在今天的教程中,我們將利用基本用戶界面創建出一款簡單的啟動器,它將由兩部分屏幕構成:在主屏幕中顯示的是該設備的墻紙圖案;另一屏幕中顯示的是已經安裝在設備當中的應用程序圖標及其它細節信息。

【51CTO譯文】我們要開發的就是這樣一套方案。

介紹

從最基本的概念角度來講,啟動器其實應該是一款能夠實現以下功能的應用程序:

  • 它代表著一臺設備的主屏幕。
  • 它能夠列出并啟動已經安裝在該設備當中的應用程序。

換句話來說,它就是那款用戶按下home按鈕后所顯示的應用程序。除非大家已經安裝了定制化啟動器,否則我們目前正在使用的應該都是Android系統自帶的默認啟動方案。不少設備制造商都會在產品中默認使用由其定制的啟動器,從而確保我們獲得與廠商預期相符的外觀效果與使用感受,例如三星TouchWiz以及HTC Sense。

在今天的教程中,我們將利用基本用戶界面創建出一款簡單的啟動器,它將由兩部分屏幕構成:

  • 在主屏幕中顯示的是該設備的墻紙圖案。
  • 另一屏幕中顯示的是已經安裝在設備當中的應用程序圖標及其它細節信息。

1.要求

大家需要在自己的開發設備上預先安裝并配置好以下項目:

  • Android SDK以及平臺工具
  • Eclipse IDE 3.7.2或者更高版本,同時具備ADT插件
  • 運行有Android 2.2或者更高版本的模擬器或者Android設備

大家可以點擊此處通過Android開發者門戶下載對應SDK及平臺工具。

2.項目設置

首先我們需要啟動Eclipse并創建一個新的Android應用程序項目。我為這個應用取了個非常直白的名稱——SimpleLauncher,當然大家也可以自由選擇自己想要的名稱。請確保軟件包名稱沒有與其它項目出現重復。我們的啟動器所能支持的***SDK版本為“凍酸奶”,而主要的面向版本則為“果凍豆”。

由于我們不打算創建Activity,因此取消“Create Activity”勾選項,然后點擊“Finish”以繼續。

3.項目清單

接下來我們需要通過添加兩個activity對AndroidManifest.xml文件進行修改。***個Activity用于顯示主屏幕,我們如下所示將其命名為HomeActivity。

  1. <activity 
  2.  
  3.     android:name="ah.hathi.simplelauncher.HomeActivity" 
  4.  
  5.     android:label="Simple Launcher Home" 
  6.  
  7. android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen" 
  8.  
  9.     android:launchMode="singleTask" 
  10.  
  11.     android:stateNotNeeded="true" 
  12.  
  13.     > 
  14.  
  15.     <intent-filter> 
  16.  
  17.       <action android:name="android.intent.action.MAIN" /> 
  18.  
  19.       <category android:name="android.intent.category.HOME" /> 
  20.  
  21.       <category android:name="android.intent.category.DEFAULT" /> 
  22.  
  23.     </intent-filter>         
  24.  
  25. </activity> 

通過將android.intent.category.HOME與android.intent.category.DEFAULT兩個類添加至intent-filter組當中,相關Activity得以擁有與啟動器概念相符的運行方式。當大家按下設備上的home按鈕時,其還將作為選項方案顯示出來。

我們還需要將launchMode設置到singleTask當中,從而確保無論何時都只有單一Activity實例由系統負責運行。要顯示用戶的墻紙圖案,大家必須將主題設置為Theme.Wallpaper.NoTitleBar.FullScreen。

我們需要添加的第二個Activity負責顯示已經安裝在用戶設備中的應用程序條目。它還有另一項任務,即啟動這些應用程序。我們不需要對該Activity進行任何特殊配置,將其命名為AppsListActivity即可。

  1. <activity 
  2.  
  3.     android:name="ah.hathi.simplelauncher.AppsListActivity" 
  4.  
  5.     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
  6.  
  7.     >            
  8.  
  9. </activity> 

4.Activity布局

下面在項目的res/layout文件夾中為HomeActivity類創建一個XML文件,并將其命名為activity_home.xml。該布局擁有一個單獨的Button用以響應點觸事件。點觸該按鈕能夠讓用戶由主屏幕切換至應用程序列表。

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.  
  3.     xmlns:tools="http://schemas.android.com/tools" 
  4.  
  5.     android:layout_width="match_parent" 
  6.  
  7.     android:layout_height="match_parent" 
  8.  
  9.     tools:context=".HomeActivity" > 
  10.  
  11.     <Button 
  12.  
  13.         android:id="@+id/apps_button" 
  14.  
  15.         android:layout_width="wrap_content" 
  16.  
  17.         android:layout_height="wrap_content" 
  18.  
  19.         android:layout_alignParentRight="true" 
  20.  
  21.         android:layout_alignParentTop="true" 
  22.  
  23.         android:layout_marginRight="10dp" 
  24.  
  25.         android:layout_marginTop="10dp" 
  26.  
  27.         android:text="Show Apps" 
  28.  
  29.         android:onClick="showApps" 
  30.  
  31.         /> 
  32.  
  33. </RelativeLayout> 

接下來,在項目的res/layout文件夾中為AppsListActivity類創建一個XML文件并將其命名為activity_apps_list.xml。該布局當中包含一個占據整個屏幕的ListView。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  4.  
  5.     android:layout_width="match_parent" 
  6.  
  7.     android:layout_height="match_parent" 
  8.  
  9.     android:orientation="vertical" > 
  10.  
  11.     <ListView 
  12.  
  13.         android:id="@+id/apps_list" 
  14.  
  15.         android:layout_width="match_parent" 
  16.  
  17.         android:layout_height="match_parent" 
  18.  
  19.         >        
  20.  
  21.     </ListView>    
  22.  
  23. </LinearLayout> 

***,在同樣的位置創建第三個XML文件并將其命名為list_item.xml。該文件用于定義ListView當中各個條目的布局方案。列表視圖中的每個條目都代表著已經安裝在用戶設備上的一款應用程序。它能夠顯示該應用程序的圖標、標簽以及軟件包名稱。我們可以利用ImageView實例來顯示該應用的圖標,并通過TextView實例顯示標簽與軟件包名稱。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  4.  
  5.     android:layout_width="match_parent" 
  6.  
  7.     android:layout_height="match_parent" 
  8.  
  9.     android:padding="10dp" 
  10.  
  11.     > 
  12.  
  13.     <ImageView 
  14.  
  15.         android:id="@+id/item_app_icon" 
  16.  
  17.         android:layout_width="wrap_content" 
  18.  
  19.         android:layout_height="wrap_content" 
  20.  
  21.         android:layout_alignParentLeft="true" 
  22.  
  23.         android:layout_centerVertical="true"        
  24.  
  25.         /> 
  26.  
  27.     <TextView 
  28.  
  29.         android:id="@+id/item_app_label" 
  30.  
  31.         android:layout_width="wrap_content" 
  32.  
  33.         android:layout_height="wrap_content" 
  34.  
  35.         android:layout_toRightOf="@+id/item_app_icon" 
  36.  
  37.         android:paddingLeft="10dp" 
  38.  
  39.         /> 
  40.  
  41.     <TextView 
  42.  
  43.         android:id="@+id/item_app_name" 
  44.  
  45.         android:layout_width="wrap_content" 
  46.  
  47.         android:layout_height="wrap_content" 
  48.  
  49.         android:layout_below="@+id/item_app_label" 
  50.  
  51.         android:layout_toRightOf="@+id/item_app_icon" 
  52.  
  53.         android:paddingLeft="10dp" 
  54.  
  55.         /> 
  56.  
  57. </RelativeLayout> 

5.創建Acitivity類

HomeActivity

應用程序的布局方案創建完成之后,現在要做的是創建兩個Activity類。當創建這兩個類時,請確保每個類的名稱都與我們之前在項目清單文件中所指定的內容相匹配。

創建一個名為HomeActivity的新類,然后將android.app.Activity設置為其超類。

  1. package ah.hathi.simplelauncher; 
  2.  
  3. import android.app.Activity; 
  4.  
  5. import android.content.Intent; 
  6.  
  7. import android.os.Bundle; 
  8.  
  9. import android.view.View; 
  10.  
  11. public class HomeActivity extends Activity { 
  12.  
  13.     @Override 
  14.  
  15.     protected void onCreate(Bundle savedInstanceState) { 
  16.  
  17.         super.onCreate(savedInstanceState); 
  18.  
  19.         setContentView(R.layout.activity_home); 
  20.  
  21.     } 
  22.  
  23.     public void showApps(View v){ 
  24.  
  25.         Intent i = new Intent(this, AppsListActivity.class); 
  26.  
  27.         startActivity(i); 
  28.  
  29.     } 
  30.  

在該類的onCreate方法中,我們調用setContentView并將其傳遞至之前已經創建完成的布局當中。大家可能還記得,我們曾為activity_home布局添加過一個按鈕,用于觸發名為showApps的方法。現在我們要做的是將該方法引入HomeActivity類當中。整個添加過程非常簡單,各位需要做的只是為AppsListActivity類創建一個Intent并付諸運行。

#p#

AppsListActivity

創建另一個名為AppsListActivity的Activity類,而后將android.app.Activity設置為其超類。在該類的onCreate方法當中,我們調用setContentView并將其傳遞至此前已經創建完成的activity_apps_list布局當中。

  1. package ah.hathi.simplelauncher; 
  2.  
  3. import android.app.Activity; 
  4.  
  5. import android.content.Intent; 
  6.  
  7. import android.os.Bundle; 
  8.  
  9. import android.view.View; 
  10.  
  11. public class AppsListActivity extends Activity { 
  12.  
  13.     @Override 
  14.  
  15.     protected void onCreate(Bundle savedInstanceState) {    
  16.  
  17.         super.onCreate(savedInstanceState); 
  18.  
  19.         setContentView(R.layout.activity_apps_list); 
  20.  
  21.     } 
  22.  

雖然我們的啟動器方案還沒有最終完成,但到這里大家已經可以保存現有內容并借此啟動自己設備上的應用程序了。當各位按下設備上的home按鈕時,系統會能夠彈窗詢問我們希望使用哪種啟動器方案。

如果大家選擇了Simple Launcher Home,則可以看到自己創建的全新主屏幕,其右上屏幕位置還配備一個按鈕。大家還能看到自己設備上原本設定的墻紙圖案。

[[117878]]

現在回到Eclipse并創建一個名為AppDetail的類,其中將包含與應用程序相關的細節信息、軟件包名稱、標簽以及應用程序圖標。該界面非常基礎,大家可以利用如下代碼實現:

  1. package ah.hathi.simplelauncher; 
  2.  
  3. import android.graphics.drawable.Drawable; 
  4.  
  5. public class AppDetail { 
  6.  
  7.         CharSequence label; 
  8.  
  9.         CharSequence name; 
  10.  
  11.         Drawable icon; 
  12.  

6.獲取應用程序

在AppsListActivity類的loadApps方法當中,我們可以使用PackageManager類的queryIntentActivities方法以獲取Intent.CATEGORY_LAUNCHER類別當中的所有Intents。該查詢能夠返回一份列表,其中包含全部能夠經由啟動器實現啟動的應用程序。我們可以將查詢返回結果中的每個條目添加到名為apps的列表當中。大家可以通過以下代碼片段進一步了解其效果。

  1. private PackageManager manager; 
  2.  
  3. private List<AppDetail> apps; 
  4.  
  5. private void loadApps(){ 
  6.  
  7.     manager = getPackageManager(); 
  8.  
  9.     apps = new ArrayList<AppDetail>(); 
  10.  
  11.     Intent i = new Intent(Intent.ACTION_MAIN, null); 
  12.  
  13.     i.addCategory(Intent.CATEGORY_LAUNCHER); 
  14.  
  15.     List<ResolveInfo> availableActivities = manager.queryIntentActivities(i, 0); 
  16.  
  17.     for(ResolveInfo ri:availableActivities){ 
  18.  
  19.         AppDetail app = new AppDetail(); 
  20.  
  21.         app.label = ri.loadLabel(manager); 
  22.  
  23.         app.name = ri.activityInfo.packageName; 
  24.  
  25.         app.icon = ri.activityInfo.loadIcon(manager); 
  26.  
  27.         apps.add(app); 
  28.  
  29.     } 
  30.  

7.顯示應用程序列表

由于apps變量當中包含有我們所需要的全部細節信息,因此大家可以利用ListView類顯示出完整的應用程序列表。我們首先創建一個簡單的ArrayAdapter并覆蓋其getView方法以獲取列表中的條目信息。接下來,將該ListView與適配器相關聯。

  1. private ListView list;    
  2.  
  3. private void loadListView(){ 
  4.  
  5.     list = (ListView)findViewById(R.id.apps_list); 
  6.  
  7.     ArrayAdapter<AppDetail> adapter = new ArrayAdapter<AppDetail>(this
  8.  
  9.             R.layout.list_item, 
  10.  
  11.             apps) { 
  12.  
  13.         @Override 
  14.  
  15.         public View getView(int position, View convertView, ViewGroup parent) { 
  16.  
  17.             if(convertView == null){ 
  18.  
  19.                 convertView = getLayoutInflater().inflate(R.layout.list_item, null); 
  20.  
  21.             } 
  22.  
  23.             ImageView appIcon = (ImageView)convertView.findViewById(R.id.item_app_icon); 
  24.  
  25.             appIcon.setImageDrawable(apps.get(position).icon); 
  26.  
  27.             TextView appLabel = (TextView)convertView.findViewById(R.id.item_app_label); 
  28.  
  29.             appLabel.setText(apps.get(position).label); 
  30.  
  31.             TextView appName = (TextView)convertView.findViewById(R.id.item_app_name); 
  32.  
  33.             appName.setText(apps.get(position).name); 
  34.  
  35.             return convertView; 
  36.  
  37.         } 
  38.  
  39.     }; 
  40.  
  41.     list.setAdapter(adapter);           
  42.  

8.偵聽點觸操作

當用戶點觸ListView當中的某個條目時,我們的啟動器應該能夠運行相應的應用程序。我們可以通過PackageManager類中的getLaunchIntentForPackage方法來創建一個Intent,用于指定我們要啟動哪款應用程序。請大家查看以下代碼片段。

  1. private void addClickListener(){        
  2.  
  3.     list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
  4.  
  5.         @Override 
  6.  
  7.         public void onItemClick(AdapterView<?> av, View v, int pos, 
  8.  
  9.                 long id) { 
  10.  
  11.             Intent i = manager.getLaunchIntentForPackage(apps.get(pos).name.toString()); 
  12.  
  13.             AppsListActivity.this.startActivity(i); 
  14.  
  15.         } 
  16.  
  17.     }); 
  18.  

9.通過整合實現完整功能

為了讓前面提到的全部內容整合起來并實現完整功能,我們需要在AppsListActivity類的onCreate方法中調用loadApps、loadListView與addClickListener,具體代碼如下所示。

  1. protected void onCreate(Bundle savedInstanceState) {    
  2.  
  3.     super.onCreate(savedInstanceState); 
  4.  
  5.     setContentView(R.layout.activity_apps_list); 
  6.  
  7.     loadApps(); 
  8.  
  9.     loadListView(); 
  10.  
  11.     addClickListener(); 
  12.  

下面編譯并運行我們的啟動器應用,并再一次運行以查看結果。大家現在應該已經能夠在啟動器主屏幕中點擊該按鈕后查看所有可以啟用的應用程序了。別猶豫,快點觸其中一個嘗試一下吧。

總結

大家現在已經擁有自己的定制化啟動器了。它很簡單也很粗糙,但我們完全可以陸續為其添加更多功能特性、從而讓它逐步得到完善。如果大家想進一步了解能夠在啟動器中引入哪些自定義項目,我建議各位點擊此處查看Android開發者門戶當中給出的示例應用程序。

原文鏈接:Build A Custom Launcher on Android

核子可樂譯

責任編輯:閆佳明 來源: 51CTO譯文
相關推薦

2014-08-19 13:56:23

移動技術半月刊

2013-01-09 17:16:41

Android開發Camera

2014-08-26 10:05:37

框架開發AngularJS

2024-09-14 14:09:40

2009-06-30 13:58:00

Java啟動器

2021-08-27 11:03:57

Azure公有云云原生

2013-11-25 15:11:21

Linux桌面啟動器

2011-04-02 11:46:50

UI嵌入式開發

2012-11-09 14:33:38

WindowsChrome

2011-10-19 09:56:58

Gnome Pie程序啟動器

2012-06-20 10:21:50

Windows Pho

2018-03-26 10:20:13

2013-04-19 15:22:31

Windows Pho啟動器與選擇器

2013-04-18 13:28:19

Windows Pho啟動器與選擇器

2013-04-18 13:56:09

Windows Pho啟動器與選擇器

2013-04-18 11:13:04

Windows Pho啟動器與選擇器BingMapsDir

2021-12-14 16:15:47

LinuxNginxWeb

2017-02-09 09:30:18

UbuntuDokuWikiApache

2013-04-18 13:47:43

Windows Pho啟動器與選擇器發送短信

2018-05-14 08:36:06

JavaFedoraOpenJDK
點贊
收藏

51CTO技術棧公眾號

青青青青草视频| 8090成年在线看片午夜| 99热在线这里只有精品| 精品美女www爽爽爽视频| 欧美色图国产精品| 天天色综合成人网| 国产精品久久久一区二区三区| 99久久久免费精品| www.26天天久久天堂| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品久久久久影视| 日本午夜精品理论片a级appf发布| 中文视频在线观看| av免费不卡国产观看| 国产经典欧美精品| 欧美第一黄网免费网站| 中文字幕人妻无码系列第三区| 麻豆免费在线观看| 久久99国产精品尤物| 日韩在线观看av| 午夜大片在线观看| 天天色天天射天天综合网| 国产精品一区二区91| 九九热这里只有在线精品视| 免费在线观看日韩av| 精精国产xxxx视频在线中文版 | 欧美性做爰猛烈叫床潮| 亚洲欧洲日夜超级视频| 亚洲字幕av一区二区三区四区| 久久激情电影| 欧美一级高清片在线观看| 国产激情在线看| 少妇一级淫片免费看| 美女被久久久| 久久精品视频在线播放| 少妇性l交大片7724com| 夜鲁夜鲁夜鲁视频在线播放| 久久久久久久综合色一本| 国产精品黄页免费高清在线观看| 成年人免费视频播放| 日韩精品中文字幕吗一区二区| 亚洲韩国一区二区三区| 欧美日韩免费精品| 国产精品无码久久久久成人app| 欧美婷婷在线| 亚洲欧美一区二区三区情侣bbw| 亚洲xxxx2d动漫1| a视频在线免费看| 95精品视频在线| 国产免费一区二区三区在线能观看| 日本精品人妻无码77777| 牛牛影视一区二区三区免费看| 欧美在线999| 男人天堂手机在线视频| www.亚洲资源| 波多野结衣中文字幕一区| 国产精品video| 久久精品一区二区三| 欧美日本成人| 欧美成人一级视频| 少妇黄色一级片| 成年人国产在线观看| 国产精品午夜在线观看| 国产一区免费观看| 国产又粗又猛又黄又爽无遮挡| 亚洲精品系列| 精品国产一区久久久| av无码av天天av天天爽| 日本少妇精品亚洲第一区| 色国产精品一区在线观看| 青青青在线观看视频| a黄色在线观看| 成人aa视频在线观看| 国产一区在线播放| 一级片免费在线播放| 欧美天天视频| 欧美成人黑人xx视频免费观看| 欧美做受高潮6| 精品福利一区| 日韩欧美精品在线| 亚洲欧美国产中文| 日本综合视频| 色综合天天做天天爱| 六月婷婷在线视频| 性欧美ⅴideo另类hd| 国产精品久久久久一区| 欧美一区二区在线视频观看| 手机看片一区二区三区| 国产iv一区二区三区| 91手机视频在线观看| 一区二区自拍偷拍| 日本特黄久久久高潮| 欧美一区二区三区免费观看 | www.视频在线.com| 久久蜜桃香蕉精品一区二区三区| 国内一区二区三区在线视频| 日本精品久久久久久| 粉嫩av一区二区三区在线播放| 亚洲一区二区三区777| 国产精品一区二区黑人巨大 | 婷婷六月综合网| 日韩欧美不卡在线| аⅴ资源天堂资源库在线| 亚洲高清在线精品| 亚洲精品无码国产| 黄视频免费在线看| 精品久久久久久国产91| 97国产在线播放| 午夜激情电影在线播放| 欧美视频13p| 欧美一级黄色影院| 精品久久福利| 91精品在线观看入口| 九九九久久久久久久| 日韩欧美中文字幕一区二区三区| 91精品国产麻豆| 香蕉视频在线观看黄| 日本免费精品| 亚洲精品不卡在线| 丝袜美腿中文字幕| 欧美三级伦理在线| www.日韩欧美| 麻豆疯狂做受xxxx高潮视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久久久久久国产| av黄色在线播放| 美女视频一区在线观看| 成人网址在线观看| 秋霞网一区二区| 久久精品亚洲乱码伦伦中文| 一本色道婷婷久久欧美| 污片视频在线免费观看| 欧美日韩午夜剧场| 亚洲欧洲日本精品| 亚洲高清999| 亚洲美女中文字幕| 99热99这里只有精品| 狠色狠色综合久久| 国产成人亚洲综合青青| 国产免费一区二区三区最新不卡| 成人免费毛片嘿嘿连载视频| 日韩三级电影| 女囚岛在线观看| 在线观看国产日韩| 一个人看的视频www| 九一国产精品| 色综合天天综合网国产成人网| 天堂在线免费观看视频| 久久97超碰国产精品超碰| 国产伦精品一区二区三区四区视频 | 成人免费看视频网站| 欧美日韩精品三区| 偷偷色噜狠狠狠狠的777米奇| 日韩欧美二区| 66m—66摸成人免费视频| 亚洲中文字幕一区二区| av成人动漫在线观看| 天天干天天操天天干天天操| 蜜桃在线视频| 日韩视频免费直播| 永久免费毛片在线观看| 亚洲黄色av| 91探花福利精品国产自产在线| 男女网站在线观看| 亚洲午夜成aⅴ人片| 在线视频观看91| 国产日产精品一区二区三区四区的观看方式 | 国产精品av久久久久久麻豆网| 国产精品h片在线播放| 免费观看国产精品| 亚洲精品自拍动漫在线| 日本黄大片一区二区三区| 特黄特色欧美大片| 欧美国产中文字幕| 国产精品久久久久精| 国产日韩一级二级三级| 久久久999视频| 91麻豆精品激情在线观看最新 | 日韩av官网| 欧美挠脚心视频网站| 69视频在线观看免费| 国产情侣一区| 国产精品乱码一区二区三区| 尤物yw193can在线观看| 欧美疯狂性受xxxxx喷水图片| 无码一区二区三区在线| 午夜亚洲伦理| 狠狠色综合一区二区| 婷婷在线播放| 精品久久久久久久久久久久包黑料 | 久久黄色一级视频| 97久久视频| 国产综合久久久久| 日本在线人成| 欧美片在线播放| 日本美女黄色一级片| 麻豆国产精品777777在线| 亚洲欧美日韩精品在线| av免费在线一区| 在线国产精品视频| 在线免费一级片| 中文字幕中文在线不卡住| 艹b视频在线观看| 久久免费精品视频在这里| 国产精品美女无圣光视频| 福利在线播放| 欧美日韩精品一区二区三区| 国产精品久久国产精麻豆96堂| 毛片av一区二区三区| 一区二区免费在线视频| 国产午夜久久av| 欧美老女人在线视频| 国产 日韩 欧美 综合| 婷婷激情综合网| 91视频免费观看网站| 日韩黄色免费电影| 在线观看一区二区三区三州 | 免费视频一区| 日韩欧美亚洲在线| 亚洲热av色在线播放| 欧美高清videos高潮hd| 天堂网在线资源| 在线一区二区三区做爰视频网站| 亚洲欧美另类日本| 国产成人av电影在线观看| 国产av天堂无码一区二区三区| 亚洲黄色录像| 国产啪精品视频网站| 婷婷在线播放| 一本一道久久a久久精品逆3p | 日本中文字幕在线免费观看| 91麻豆高清视频| av污在线观看| 黄色在线成人| 奇米888一区二区三区| 欧洲精品99毛片免费高清观看| 性欧美在线看片a免费观看| 福利成人在线观看| 欧美大片在线观看一区二区| 黄色在线视频网址| ...av二区三区久久精品| 在线黄色免费网站| 蜜臀av一区二区在线观看| 99久久久精品视频| 蜜桃一区二区| 99c视频在线| 日本欧美一区| 97免费在线视频| 91免费在线| 亚洲第一福利网| 国产原创中文av| 色婷婷综合久久久中文一区二区 | 久久综合九色综合久| 91麻豆精品国产自产在线| 中文字幕在线观看视频网站| 亚洲天堂免费看| 中国毛片在线观看| 丁香啪啪综合成人亚洲小说| 亚洲综合色在线观看| 99在线|亚洲一区二区| 日韩最新中文字幕| av资源久久| 久久久久久久久久久久久9999| 涩爱av色老久久精品偷偷鲁| 国产精品老女人视频| 色偷偷色偷偷色偷偷在线视频| 久热精品视频在线观看一区| 成人欧美亚洲| 日韩毛片在线观看| 成人免费一级视频| 777色狠狠一区二区三区| 青青国产在线视频| 精品久久久国产| 91精品国产高潮对白| 一区二区三区自拍| 亚洲欧美精品aaaaaa片| 欧美激情在线一区二区三区| 波多野结衣福利| www.激情成人| 色婷婷精品久久二区二区密| 国产成人精品免费在线| 一级黄色大片儿| 久久成人综合网| 少妇网站在线观看| 日本中文在线一区| 国产免费999| 日本伊人精品一区二区三区观看方式| 国产中文字幕免费观看| 一本色道久久综合亚洲精品高清| 久艹在线免费观看| 亚洲午夜一级| 久久99久久99精品| 亚洲午夜av| av日韩一区二区三区| 亚洲精品色图| 欧美牲交a欧美牲交aⅴ免费下载| 99日韩精品| www.com毛片| 午夜综合激情| 日韩一级片播放| 奇米一区二区三区| 免费看涩涩视频| 精品一区二区三区免费毛片爱 | 日韩五码电影| 成人网在线免费看| 免费精品一区| 国产精品.com| 日韩福利视频一区| 欧美一区二区综合| 精品国产乱码久久久久久果冻传媒| 欧美在线视频二区| 久久中文亚洲字幕| 看全色黄大色大片| 极品裸体白嫩激情啪啪国产精品| 国产av国片精品| 亚洲一区国产一区| 又色又爽又高潮免费视频国产| 美女视频黄久久| 欧洲成人午夜精品无码区久久| 成人av一区二区三区| 亚洲a v网站| 综合在线观看色| 国产极品在线播放| 色综合久久久久网| 97av免费视频| 亚洲国产精品久久久久秋霞蜜臀 | 7777精品| 欧美精品在线一区| 国产精品国产三级国产在线观看| 欧美一级爱爱视频| 另类图片国产| 成人av毛片在线观看| 成人高清免费观看| 亚洲黄色免费视频| 亚洲美女区一区| 无码人妻aⅴ一区二区三区有奶水| 欧美乱熟臀69xxxxxx| 蜜桃视频久久一区免费观看入口| 亚洲欧美激情精品一区二区| 麻豆影视在线观看_| 久久琪琪电影院| 国产香蕉久久| 国产亚洲情侣一区二区无| 日本成人小视频| 欧美日韩不卡在线视频| 青青草国产成人99久久| 久久久精品人妻一区二区三区| 91老师片黄在线观看| 一级片一级片一级片| 一本久道久久综合中文字幕| 亚洲天堂网视频| 日韩国产在线播放| 操你啦视频在线| 日本国产精品视频| 日韩成人精品| 亚洲精品中文综合第一页| 在线 亚洲欧美在线综合一区| 日本激情视频在线| 成人三级伦理片| 97在线观看免费高| 欧美午夜片在线免费观看| 99精品免费观看| 国产亚洲精品日韩| 草草在线视频| 99国产超薄丝袜足j在线观看| 欧美综合视频| 国产肥臀一区二区福利视频| 国产成人h网站| www.97视频| 欧美午夜一区二区三区| 五月婷婷狠狠干| 欧美激情xxxx| 久久免费精品| 中文字幕免费在线不卡| 久久美女性网| 黄色短视频在线观看| 一二三区精品福利视频| 国产精品久久久久毛片| 一区二区欧美日韩视频| 亚洲精品mv| 精品一区二区三区日本| 欧美午夜在线| 波多野结衣电影免费观看| 亚洲欧洲精品一区二区三区不卡| 秋霞av一区二区三区| 亚洲国产精品字幕| 欧美大片黄色| 99国产在线视频| 草莓福利社区在线| 亚洲一级在线观看| 亚洲人成色77777| 99re免费视频精品全部| jizz国产免费| 亚洲国产黄色片| av资源在线| 狠狠色狠狠色综合人人| 亚洲国产激情| 国产性生活毛片| 日韩欧美成人免费视频| 日韩av视屏|