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

自定義Android界面切換效果庫的使用

移動開發 Android
作者希望通過本文可以讓廣大讀者了解、熟悉并且掌握自定義Android界面切換效果庫的使用、開發與思考,希望大家可以學而能用制作自己的自定義Android界面切換效果庫來使用。

界面或者板塊的切換是Android應用中非常常見的一個功能,同時也談談自己對 “Android模塊化編程”的一些想法與對自定義Android界面切換效果庫的使用。希望大家能通過對界面切換效果庫的研究和思考,總結出一套自己的常用功能類庫的開發思路。界面切換效果庫 Demo項目的源碼(ShiftEffect.zip)可以點擊“此處下載”。將解壓后的項目源碼(ShiftEffect)導入到Eclipse中就可以看到這個Demo項目的代碼結構了(如下圖)。

首先,在模擬器上運行項目代碼。可以看到,界面切換效果庫的Demo為大家提供了比較豐富的選項,如下圖所示;我們可以隨意選擇切換的內容(文字、圖片)、切換的漸變時間、切換的停頓時間以及豐富切換的效果(滾動切換、旋轉漸變、大小漸變等)。


下圖所示的就是圖片切換的效果,大家還可以嘗試各種切換的效果,我們可以看到效果還是很流暢的。

界面切換效果庫位于ShiftEffect項目的libs目錄下,即plugs-effect.jar。該效果庫的使用范例都在 com.example.scrolleffect包目錄下的MainActivity.java文件中,使用方法在代碼注釋中都已經寫的非常清楚了,如 下參考。

  1. public class MainActivity extends Activity implements OnItemSelectedListener {   
  2.    
  3.     // 展示漸變動效的容器,用于容納漸變效果庫的View控件   
  4.     private LinearLayout container;   
  5.        
  6.     // 漸變效果庫的View控件類   
  7.     private EffectView mView;   
  8.        
  9.     // 文字資源(用于展示漸變切換)   
  10.     private String[] mTexts = { "今日新聞1""今日新聞2""今日新聞3" };   
  11.        
  12.     // 圖片資源(用于展示漸變切換)   
  13.     private int[] mImages = { R.drawable.image_1, R.drawable.image_2, R.drawable.image_3 };   
  14.    
  15.     // 切換內容選項   
  16.     private Spinner sp1;   
  17.     private ArrayAdapter<String> aa1;   
  18.     private String[] menu1 = { "內容:文字""內容:圖片" };   
  19.    
  20.     // 切換漸變時間選項   
  21.     private Spinner sp2;   
  22.     private ArrayAdapter<String> aa2;   
  23.     private String[] menu2 = { "動時:300ms""動時:1000ms""動時:3000ms" };   
  24.    
  25.     // 切換漸變停頓選項   
  26.     private Spinner sp3;   
  27.     private ArrayAdapter<String> aa3;   
  28.     private String[] menu3 = { "停時:3000ms""停時:5000ms""停時:10000ms" };   
  29.    
  30.     // 切換漸變效果選項   
  31.     private Spinner sp4;   
  32.     private ArrayAdapter<String> aa4;   
  33.     private String[] menu4 = { "動效:向上""動效:向下""動效:向左""動效:向右""動效:旋轉",   
  34.             "動效:大小""動效:漸變" };   
  35.    
  36.     @Override   
  37.     public void onCreate(Bundle savedInstanceState) {   
  38.         super.onCreate(savedInstanceState);   
  39.         setContentView(R.layout.activity_main);   
  40.    
  41.         // 初始化展示動效的容器   
  42.         container = (LinearLayout) this.findViewById(R.id.container);   
  43.    
  44.         // 初始化各個選項的內容   
  45.         sp1 = (Spinner) findViewById(R.id.spinner1);   
  46.         aa1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, menu1);   
  47.         aa1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);   
  48.         sp1.setAdapter(aa1);   
  49.         sp1.setOnItemSelectedListener(this);   
  50.    
  51.         sp2 = (Spinner) findViewById(R.id.spinner2);   
  52.         aa2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, menu2);   
  53.         aa2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);   
  54.         sp2.setAdapter(aa2);   
  55.         sp2.setOnItemSelectedListener(this);   
  56.    
  57.         sp3 = (Spinner) findViewById(R.id.spinner3);   
  58.         aa3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, menu3);   
  59.         aa3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);   
  60.         sp3.setAdapter(aa3);   
  61.         sp3.setOnItemSelectedListener(this);   
  62.    
  63.         sp4 = (Spinner) findViewById(R.id.spinner4);   
  64.         aa4 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, menu4);   
  65.         aa4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);   
  66.         sp4.setAdapter(aa4);   
  67.         sp4.setOnItemSelectedListener(this);   
  68.     }   
  69.    
  70.     @Override   
  71.     public boolean onCreateOptionsMenu(Menu menu) {   
  72.         getMenuInflater().inflate(R.menu.activity_main, menu);   
  73.         return true;   
  74.     }   
  75.    
  76.     @Override   
  77.     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {   
  78.         // 選擇切換內容選項(可選擇滾動文字或者圖片)   
  79.         if (parent.getAdapter() == aa1) {   
  80.             container.removeAllViews();   
  81.             switch (position) {   
  82.                 case 0:   
  83.                     // 初始化文字切換View對象   
  84.                     mView = EffectUtil.fillTexts(this, EffectView.ANI_UP, 30, mTexts);   
  85.                     container.addView(mView);   
  86.                     mView.start();   
  87.                     break;   
  88.                 default:   
  89.                     mView = EffectUtil.fillImages(this, EffectView.ANI_UP, mImages);   
  90.                     container.addView(mView);   
  91.                     mView.start();   
  92.                     break;   
  93.             }   
  94.         }   
  95.         // 選擇切換漸變時間選項   
  96.         if (parent.getAdapter() == aa2) {   
  97.             switch (position) {   
  98.                 case 0:   
  99.                     mView.setDuration(300);   
  100.                     break;   
  101.                 case 1:   
  102.                     mView.setDuration(1000);   
  103.                     break;   
  104.                 default:   
  105.                     mView.setDuration(3000);   
  106.                     break;   
  107.             }   
  108.         }   
  109.         // 選擇切換漸變間隔選項   
  110.         if (parent.getAdapter() == aa3) {   
  111.             switch (position) {   
  112.                 case 0:   
  113.                     mView.setInterval(3000);   
  114.                     break;   
  115.                 case 1:   
  116.                     mView.setInterval(5000);   
  117.                     break;   
  118.                 default:   
  119.                     mView.setInterval(10000);   
  120.                     break;   
  121.             }   
  122.         }   
  123.         // 選擇切換漸變效果選項   
  124.         if (parent.getAdapter() == aa4) {   
  125.             switch (position) {   
  126.                 case 0:   
  127.                     mView.setAnimation(EffectView.ANI_UP); // 往上滾動   
  128.                     break;   
  129.                 case 1:   
  130.                     mView.setAnimation(EffectView.ANI_DOWN); // 往下滾動   
  131.                     break;   
  132.                 case 2:   
  133.                     mView.setAnimation(EffectView.ANI_LEFT); // 往左滾動   
  134.                     break;   
  135.                 case 3:   
  136.                     mView.setAnimation(EffectView.ANI_RIGHT); // 往右滾動   
  137.                     break;   
  138.                 case 4:   
  139.                     mView.setAnimation(EffectView.ANI_ROTATE); // 旋轉漸變   
  140.                     break;   
  141.                 case 5:   
  142.                     mView.setAnimation(EffectView.ANI_SCALE); // 大小漸變   
  143.                     break;   
  144.                 default:   
  145.                     mView.setAnimation(EffectView.ANI_FADE); // 消失漸變   
  146.                     break;   
  147.             }   
  148.         }   
  149.     }   
  150.     @Overridek   
  151.     public void onNothingSelected(AdapterView<?> parent) {   
  152.         // TODO Auto-generated method stub   
  153.     }   

我們可以看到,該界面切換效果庫的使用方法是非常方便和靈活的。使用EffectUtil的fillTexts(或fillImages)方法添加需要進 行切換的文字(或圖片)之后,再調用其EffectView對象的start方法就可以打開切換效果了。此外,我們還可以使用setDuration方法 設置切換過程的漸變時間、使用setInterval設置切換過程的漸變間隔、使用setAnimation方法設置切換過程的漸變效果;這些方法的使用 在使用范例中都能查到。
接下來,讓我們來思考一個問題:如果拋開以上的Android界面切換效果庫,使用原生API來實現一個類似的效果,我們該如何來做?你 是否會感覺非常繁瑣?確實如此。其實,這也就是為何我們提倡“模塊化編程”的原因!實際上業內已經有很多的開發團隊早已意識到了這一點,也就是所謂的 “Android模塊化編程”。那么,何謂“Android模塊化編程”呢?簡單來說,就是把常見的、可復用的功能提取出來,單獨制作成好用的類庫,使之 在開發產品的時候可被復用。
實際上,任何一門技術發展到一定階段,必然會出現模塊化的方法和思想,對于Android編程來說也是如此。 模塊化編程可以幫助知識積累、技術沉淀,幫助我們制作出更加豐富和復雜的應用。因此,我建議大家在學習Android變成的過程中,多使用模塊化的思想來 實現,比如上述的“自定義Android界面切換效果庫”,就是個很好的例子。我們可以來看看以上界面切換效果庫源碼結構,如下圖。

從源碼的結構中,我們可以看出,效果庫的代碼層次十分清晰。EffectUtil是總接口類,里面包含了fillTexts和fillImages兩個方 法,用于初始化界面切換的內容(文字or圖片);相關的視圖類都在com.app.plugs.effect.view包下,這些視圖都是用于容納切換內 容的容器;而動畫效果類則位于com.app.plugs.effect.anim包下,這里包含了所有動畫效果的邏輯。具體源碼大家可以直接反編譯 Demo項目的源碼plugs-effect.jar來看,此包是未加密過的。
當然,在模塊化編程實現的過程中,必定會遇到很多需要解決 的問題。比如下面就是個最常見的問題,模塊相關的資源文件如何打包?實際上在模塊化編程的過程中,我們不提倡對資源進行打包。大家更應該使用 Android原生的控件API來實現模塊的UI,而不是XML模板(使用XML模板有可能降低Android應用的運行效率,請參考《Android和PHP開發***實踐》第10章.客戶端優化)來學習自定義Android界面切換效果庫的使用;而圖片資源這些則可以通過模塊的API進行設置;總之,原則是模塊化的類庫中應該只包含代碼。當然,大家在實施過程中遇到任何問題,都歡迎到這里來留言和討論。

責任編輯:閆佳明 來源: csdn
相關推薦

2010-02-07 14:02:16

Android 界面

2013-01-06 10:43:54

Android開發View特效

2016-11-16 21:55:55

源碼分析自定義view androi

2016-12-26 15:25:59

Android自定義View

2010-10-25 16:05:07

oracle自定義函數

2017-10-25 14:07:54

APPiOSxcode

2024-05-30 08:23:37

ViewPager滑動效果接口

2017-04-21 14:27:21

Android控件QQ未讀消息

2013-04-01 14:35:10

Android開發Android自定義x

2014-12-10 10:37:45

Android自定義布局

2021-09-14 15:13:18

鴻蒙HarmonyOS應用

2009-06-23 11:35:44

JSF的Naviati

2019-12-25 11:47:27

LinuxFVWM

2022-01-14 09:17:13

PythonAPISIX插件

2011-08-25 11:44:21

LUA腳本魔獸世界

2017-05-18 12:36:16

android萬能適配器列表視圖

2016-04-12 10:07:55

AndroidViewList

2017-05-19 10:03:31

AndroidBaseAdapter實踐

2021-12-24 15:46:23

鴻蒙HarmonyOS應用

2015-06-10 10:54:24

自定義路PHP
點贊
收藏

51CTO技術棧公眾號

粉嫩av性色av蜜臀av网站| 国产午夜福利视频在线观看| av高清一区二区| 欧美三区在线| 日韩av在线网站| 999精品网站| 国产激情在线观看| 99r精品视频| 国产精品羞羞答答| 国产亚洲精品久久久久久打不开 | 日本啊v在线| 久久精品久久综合| 国外成人在线直播| 国产又粗又猛又爽又黄的视频小说| 精品久久免费观看| 91久久国产视频| 欧美丰满老妇| 亚洲精品乱码久久久久久金桔影视| 可以免费在线看黄的网站| 国产精品实拍| 久久亚洲春色中文字幕久久久| 成人写真福利网| 日本a在线观看| 色琪琪久久se色| 亚洲精品在线91| 日韩大尺度视频| 草民电影神马电影一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 日韩欧美亚洲日产国产| 殴美一级特黄aaaaaa| 精品亚洲国产成人av制服丝袜 | 欧美极品视频一区二区三区| 99热这里只有精品66| 日韩激情在线观看| 45www国产精品网站| 国产真实的和子乱拍在线观看| 日韩国产一区二区| 亚洲香蕉成视频在线观看| 亚洲天堂av网站| 亚洲网一区二区三区| 欧美卡1卡2卡| 日本人视频jizz页码69| 欧美大电影免费观看| 亚洲v日本v欧美v久久精品| 在线视频不卡国产| 日本精品在线| 国产精品色呦呦| 日韩国产精品一区二区| 嫩草精品影院| 91蝌蚪porny| 精品在线不卡| 丝袜视频国产在线播放| 国产美女高潮在线| 国产一区二区三区免费看| 国产精品激情自拍| 天天干天天操天天操| 先锋亚洲精品| 日韩av电影中文字幕| 国产精品视频一区在线观看| 午夜在线精品| 国产www精品| 久久这里只有精品9| 日韩高清电影一区| 国产欧美一区二区三区四区| 中文字幕无线码一区| 久久精品久久99精品久久| 国产精品嫩草影院一区二区| 日韩精选在线观看| 麻豆久久久久久久| 成人中文字幕+乱码+中文字幕| 国产精品国产一区二区三区四区| 毛片基地黄久久久久久天堂| 成人激情在线观看| 精品黑人一区二区三区国语馆| 国产乱码精品1区2区3区| 超碰97在线人人| 韩国av在线免费观看| av中文字幕在线不卡| 久久久久久精| 午夜激情视频在线观看| 悠悠色在线精品| 国产精品久久..4399| 欧美日韩电影免费看| 欧美日韩在线免费视频| www.日本久久| 噜噜噜狠狠夜夜躁精品仙踪林| 亚洲男女性事视频| 欧美大片xxxx| 国产日韩欧美在线播放不卡| 国产欧美一区二区三区久久 | 日韩脚交footjobhd| 在线欧美小视频| 亚洲av毛片在线观看| 久久一区二区三区视频| 欧美挤奶吃奶水xxxxx| 国产香蕉精品视频一区二区三区| www.xx日本| 亚洲另类黄色| 国产精品久久久久国产a级| 99久久久国产精品无码免费| 99国产精品一区| 亚洲精品久久区二区三区蜜桃臀| 日本精品600av| 在线观看免费一区| 91九色蝌蚪porny| 欧美色女视频| 久久久久久亚洲精品| 黄色大全在线观看| 粉嫩13p一区二区三区| 日日夜夜精品网站| h片在线观看视频免费| 欧美日韩另类国产亚洲欧美一级| 91精品人妻一区二区三区蜜桃2 | 国内精彩免费自拍视频在线观看网址 | 男人的天堂免费在线视频| 欧美日本一道本在线视频| 国产毛片毛片毛片毛片毛片毛片| 婷婷亚洲综合| 国产精品久久久一本精品 | 一区二区在线免费视频| 国产午夜精品无码| 国产一区二区在线观看视频| 日本一区网站| 国产自产自拍视频在线观看| 日韩欧美一区二区视频| 欧美一区二区三区观看| 久久激情综合| 久久国产精品99久久久久久丝袜| 亚洲丝袜精品| 91精品国产免费久久综合| 日韩不卡av在线| 久久午夜视频| 国产一区免费在线| 国产精品—色呦呦| 欧美大片日本大片免费观看| 99热这里只有精品4| 日韩成人午夜电影| 日本一区二区不卡高清更新| 中文在线中文资源| 欧美精品一区二区三区高清aⅴ| 欧美一区二区三区爽爽爽| 久久精品国产免费看久久精品| 日本一区二区三区四区在线观看| 美女的胸无遮挡在线观看| 欧美精品一区二区久久久| 欧美日韩精品一区二区三区视频播放| 久久9热精品视频| 亚洲女人毛片| 欧美成人三级| 久久久成人精品视频| 国产一区二区三区黄片| 亚洲婷婷综合久久一本伊一区 | 国产大片一区二区| 亚洲中文字幕无码一区二区三区| 蜜桃精品一区二区三区| 欧美巨大黑人极品精男| 午夜精品久久久久久久99| 亚洲黄一区二区三区| 一区二区三区人妻| 精久久久久久| 久久精品日韩| 456亚洲精品成人影院| 三级精品视频久久久久| 国产永久免费视频| 亚洲综合在线第一页| 无码国产精品一区二区免费式直播 | 亚洲成人在线视频播放| av大片免费观看| 久久精品综合网| 福利在线一区二区三区| 欧美aaaa视频| 操一操视频一区| 色是在线视频| 怡红院精品视频| 国产女人高潮毛片| 亚洲午夜精品久久久久久久久| 中文字幕精品久久久| 亚洲专区一区二区三区| 色婷婷激情一区二区三区| 999在线观看视频| 五月天亚洲色图| 国产精品中文字幕在线观看| 国产精品一区二区三区视频网站| 亚洲成人精品视频| 7799精品视频天天看| 国产精品成人网| 伦理片一区二区| 青青草视频一区| 樱空桃在线播放| 日韩激情网站| 成人性生交大片免费看视频直播| 成人影音在线| 自拍偷拍亚洲一区| 六月丁香综合网| 在线观看国产91| 久久久久黄色片| 欧美激情一区二区三区全黄| 日韩精品xxx| 日本欧美一区二区三区| 91精品国产吴梦梦| 欧美男gay| 日产精品99久久久久久| 黄色片免费在线观看| 精品偷拍各种wc美女嘘嘘| 国产女无套免费视频| 日韩欧美在线中文字幕| 欧美毛片在线观看| 国产精品丝袜91| 国模私拍在线观看| 国产呦萝稀缺另类资源| 亚洲人成色77777| 不卡的av影片| 97久久精品人人做人人爽| 中文字幕 91| 亚洲一区区二区| 丰满人妻一区二区三区53号| 国产欧美一区二区精品久久久| 北条麻妃高清一区| 久久亚洲人体| 国产成人福利网站| 99在线视频影院| 久久最新资源网| 蜜桃视频网站在线观看| 一区二区三区四区在线观看视频 | 精品国产乱子伦一区| 中文字幕在线一| 一本久久综合亚洲鲁鲁五月天| 久草网在线观看| 一区二区三区在线影院| 在线视频这里只有精品| 国产亚洲婷婷免费| 免费无码一区二区三区| 成人午夜视频福利| 波多野结衣三级视频| 国产精品中文有码| 三区视频在线观看| 久久97超碰国产精品超碰| 日本在线观看免费视频| 视频一区二区三区入口| 红桃av在线播放| 亚洲欧美不卡| 日本在线观看a| 美女视频一区免费观看| 国产女大学生av| 国产九九精品| 欧美 日韩 亚洲 一区| 亚洲天堂男人| 97超碰人人澡| 日韩一级在线| 欧美一区二区三区爽大粗免费| 亚洲深夜激情| 国产日产欧美视频| 老司机亚洲精品| 日韩av播放器| 久久99久久99小草精品免视看| 999在线观看| 国产麻豆视频一区| 涩视频在线观看| av中文一区二区三区| 无码人妻精品一区二区中文| 国产亚洲欧美日韩在线一区| 黄色av片三级三级三级免费看| 国产精品三级电影| 农村妇女精品一区二区| 久久日本片精品aaaaa国产| 这里只有精品视频| 欧美精品日韩少妇| 九九热这里只有精品6| gogo久久| 国产精品电影观看| 日韩三级一区| 粉嫩精品一区二区三区在线观看 | 午夜影视一区二区三区| 日韩av电影在线免费播放| 人人精品久久| 91免费版网站在线观看| 国产欧美啪啪| 亚洲国产精品一区二区第四页av| 999视频精品| av网站手机在线观看| 麻豆精品91| 国产欧美精品一二三| 成人av在线资源网站| 精品无码国产污污污免费网站| 中文字幕中文在线不卡住| 久久久久久久国产视频| 久久精品一区二区三区四区| 手机在线免费看片| 欧美午夜www高清视频| 中文字幕一级片| 精品国产网站在线观看| 青青草免费在线| 伦理中文字幕亚洲| 悠悠资源网亚洲青| 亚洲自拍小视频| 精品在线观看入口| 日本中文字幕一级片| 视频在线在亚洲| 日本少妇xxx| 日本一区二区综合亚洲| 国产精品theporn动漫| 欧美色综合网站| 五月婷婷狠狠干| 久久久91精品| 激情开心成人网| 国产精品伊人日日| 久久看人人摘| 无码人妻丰满熟妇区毛片18| 国产精品一区二区在线观看不卡| 无码熟妇人妻av| 亚洲午夜av在线| 91麻豆视频在线观看| 亚洲三级 欧美三级| 国产天堂在线播放视频| 成人欧美一区二区三区在线湿哒哒 | 在线亚洲一区| gogo亚洲国模私拍人体| 国产精品免费视频一区| 国产中文字幕视频| 亚洲成人精品视频| 18视频在线观看网站| 91精品国产福利在线观看| 中文字幕在线综合| 国产在线精品一区二区不卡了| 黑人巨大精品欧美| 亚洲观看高清完整版在线观看| 国产又粗又猛又爽又黄视频 | 欧美大片免费播放器| 亚洲色图欧美在线| 伊人精品在线视频| 亚洲丝袜在线视频| 精精国产xxxx视频在线野外| 97久久天天综合色天天综合色hd | 久久手机精品视频| 久久精品黄色| 亚洲午夜精品国产| 免费看黄色91| 粉嫩精品久久99综合一区| 日本韩国精品一区二区在线观看| 秋霞av在线| 欧洲永久精品大片ww免费漫画| 超碰在线成人| 97在线国产视频| 成年人网站91| 成人午夜视频精品一区| 欧美精品一区二区精品网| 超级碰碰不卡在线视频| 国产精品国产精品国产专区蜜臀ah | 91传媒免费视频| 国产白丝精品91爽爽久久 | 欧美视频免费在线观看| 五月天福利视频| 456亚洲影院| 久久不见久久见国语| www日韩在线观看| 亚洲国产高清在线观看视频| 成人小视频在线播放| 中文在线资源观看视频网站免费不卡| 欧美日一区二区三区| 亚洲图片欧洲图片日韩av| 国精产品一区一区三区mba桃花 | 欧美日韩亚洲网| 欧美在线观看在线观看| 国产精品国产自产拍高清av水多| 成人aaaa| 天堂在线一区二区三区| 亚洲精品水蜜桃| 亚洲卡一卡二卡三| 性色av一区二区三区免费| 一区二区三区韩国免费中文网站| 日韩视频在线免费看| 国产精品激情偷乱一区二区∴| 国产青青草视频| 久久久久久亚洲精品不卡| 网曝91综合精品门事件在线 | 国产成人午夜精品影院观看视频| 久久精品欧美一区二区| 日韩av在线不卡| yw.尤物在线精品视频| 欧美a级黄色大片| 91丨九色丨蝌蚪富婆spa| 中文在线字幕免费观| 久国内精品在线| 九九久久成人| 亚洲免费在线播放视频| 亚洲成年人网站在线观看| 色悠悠久久综合网| 国产一区二区三区久久久| 日本五十熟hd丰满| 永久免费精品影视网站| **爰片久久毛片| 国产激情在线观看视频| 亚洲人精品一区| 欧美挠脚心网站| 亚洲一区二区三区香蕉| 久久国产精品99国产| 欧美三级 欧美一级| 亚洲欧美日韩天堂| 日本一区二区三区电影免费观看| 97在线免费公开视频|