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

Android高級模糊技術(shù)學(xué)習(xí)

移動開發(fā) Android
今天我們來更深入了解一下Android開發(fā)上的模糊技術(shù)。我讀過幾篇有關(guān)的文章,也在StackOverFlow上看過一些相關(guān)教程的帖子,所以我想在這里總結(jié)一下學(xué)到的東西。

今天我們來更深入了解一下Android開發(fā)上的模糊技術(shù)。我讀過幾篇有關(guān)的文章,也在StackOverFlow上看過一些相關(guān)教程的帖子,所以我想在這里總結(jié)一下學(xué)到的東西。

為什么學(xué)習(xí)這個模糊技術(shù)?

現(xiàn)在越來越多的開發(fā)者喜歡在自定義控件的時候加上各種模糊背景,看看RomanNurik開發(fā)的Muzei或者Yahoo的Weather應(yīng)用app都非常不錯。我非常喜歡他們的設(shè)計。

我從Mark Allison的帖子(帖子地址)得到啟發(fā),然后寫了這篇文章。

這是我們需要完成下圖展示的效果:

[[110857]]

預(yù)備知識

首先描述一下我們需要的文件。我們需要一個主Activity,里面有一個含有多個Fragment的ViewPager,每個Fragment展示一種模糊技術(shù)。

這是主Activity的布局文件內(nèi)容:

  1. <android.support.v4.view.ViewPager 
  2. xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     xmlns:tools="http://schemas.android.com/tools" 
  4.     android:id="@+id/pager" 
  5.     android:layout_width="match_parent" 
  6.     android:layout_height="match_parent" 
  7.     tools:context="com.paveldudka.MainActivity" /> 

這是Fragment的布局文件內(nèi)容:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.   
  3. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  4.     android:layout_width="match_parent" 
  5.     android:layout_height="match_parent"> 
  6.   
  7.     <ImageView 
  8.         android:id="@+id/picture" 
  9.         android:layout_width="match_parent" 
  10.         android:layout_height="match_parent" 
  11.         android:src="@drawable/picture" 
  12.         android:scaleType="centerCrop" /> 
  13.   
  14.     <TextView 
  15.         android:id="@+id/text" 
  16.         android:gravity="center_horizontal" 
  17.         android:layout_width="match_parent" 
  18.         android:layout_height="wrap_content" 
  19.         android:text="My super text" 
  20.         android:textColor="<a href="http://www.jobbole.com/members/android/" rel="nofollow">@android</a>:color/white" 
  21.         android:layout_gravity="center_vertical" 
  22.         android:textStyle="bold" 
  23.         android:textSize="48sp" /> 
  24.     <LinearLayout 
  25.         android:id="@+id/controls" 
  26.         android:layout_width="match_parent" 
  27.         android:layout_height="wrap_content" 
  28.         android:background="#7f000000" 
  29.         android:orientation="vertical" 
  30.         android:layout_gravity="bottom"/> 
  31. </FrameLayout> 

我們只是在布局上放了一個ImageView,然后在中間加一個TextView,還有一些作為效果顯示和測試的控件(如 @+id/controls)。

最普遍的模糊技術(shù)是這樣做的:

  • 從TextView的后一層背景中截取一部分;
  • 進行模糊處理;
  • 把模糊處理后的部分設(shè)置為TextView的背景。

Renderscript

那怎么在Android中實現(xiàn)模糊處理呢?最好的答案就是Renderscript。這是一個功能強大的圖形處理“引擎”。RenderScript的底層原理就不做介紹了(因為我也不知道),而且這超過了我們這篇文章的范圍。

先看下面的代碼:

  1. public class RSBlurFragment extends Fragment { 
  2.     private ImageView image; 
  3.     private TextView text; 
  4.     private TextView statusText; 
  5.   
  6.     @Override 
  7.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
  8.         View view = inflater.inflate(R.layout.fragment_layout, container, false); 
  9.         image = (ImageView) view.findViewById(R.id.picture); 
  10.         text = (TextView) view.findViewById(R.id.text); 
  11.         statusText = addStatusText((ViewGroup) view.findViewById(R.id.controls)); 
  12.         applyBlur(); 
  13.         return view; 
  14.     } 
  15.   
  16.     private void applyBlur() { 
  17.         image.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { 
  18.             @Override 
  19.             public boolean onPreDraw() { 
  20.                 image.getViewTreeObserver().removeOnPreDrawListener(this); 
  21.                 image.buildDrawingCache(); 
  22.   
  23.                 Bitmap bmp = image.getDrawingCache(); 
  24.                 blur(bmp, text); 
  25.                 return true
  26.             } 
  27.         }); 
  28.     } 
  29.   
  30.     @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 
  31.     private void blur(Bitmap bkg, View view) { 
  32.         long startMs = System.currentTimeMillis(); 
  33.   
  34.         float radius = 20
  35.   
  36.         Bitmap overlay = Bitmap.createBitmap((int) (view.getMeasuredWidth()), 
  37.                 (int) (view.getMeasuredHeight()), Bitmap.Config.ARGB_8888); 
  38.   
  39.         Canvas canvas = new Canvas(overlay); 
  40.   
  41.         canvas.translate(-view.getLeft(), -view.getTop()); 
  42.         canvas.drawBitmap(bkg, 00null); 
  43.   
  44.         RenderScript rs = RenderScript.create(getActivity()); 
  45.   
  46.         Allocation overlayAlloc = Allocation.createFromBitmap( 
  47.                 rs, overlay); 
  48.   
  49.         ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create( 
  50.                 rs, overlayAlloc.getElement()); 
  51.   
  52.         blur.setInput(overlayAlloc); 
  53.   
  54.         blur.setRadius(radius); 
  55.   
  56.         blur.forEach(overlayAlloc); 
  57.   
  58.         overlayAlloc.copyTo(overlay); 
  59.   
  60.         view.setBackground(new BitmapDrawable( 
  61.                 getResources(), overlay)); 
  62.   
  63.         rs.destroy(); 
  64.         statusText.setText(System.currentTimeMillis() - startMs + "ms"); 
  65.     } 
  66.   
  67.     @Override 
  68.     public String toString() { 
  69.         return "RenderScript"
  70.     } 
  71.   
  72.     private TextView addStatusText(ViewGroup container) { 
  73.         TextView result = new TextView(getActivity()); 
  74.         result.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
  75.         result.setTextColor(0xFFFFFFFF); 
  76.         container.addView(result); 
  77.         return result; 
  78.     } 
  • Fragment創(chuàng)建的時候,我先載入了布局文件,然后把TextView添加到我在布局文件中定義的LinearLayout中(用來顯示模糊效果,進行效果測試),最后對圖片做模糊處理。
  • applyBlur()函數(shù)中我注冊了onPreDrawListener()。因為在applyBlur()方法調(diào)用的時候界面還沒有開始布局,所以我需要實現(xiàn)這個監(jiān)聽器否則不能進行模糊處理。需要等到布局文件全都經(jīng)過measuredlaid outdisplayed的時候,才能進行操作。
  • onPreDraw()回調(diào)函數(shù)中,我首先把返回值false改成true。這個很重要,如果返回false的話,剛開始出現(xiàn)的那一幀畫面會被跳過,但是我們需要顯示這第一幀,所以要返回true
  • 接著我去掉了里面的回調(diào)方法,因為我們不需要監(jiān)聽它的preDraw事件。
  • 然后我們需要從ImageView中獲取Bitmap,然后用getDrawingCache()函數(shù)創(chuàng)建drawing cache并保存。
  • 最后就是進行模糊處理了,我們接下來會詳細(xì)討論這個環(huán)節(jié)。

需要說明的是,我的代碼中在兩種情況下考慮不是很周全:

  • 在布局文件改變時不會再自動重新模糊處理。這個問題可以通過注冊onGlobalLayoutListener監(jiān)聽器解決,在布局文件改變時重新進行模糊處理就可以了。
  • 這個模糊處理操作是在主線程中進行的。我們知道在實際開發(fā)中不會這么做,但是為了方便暫時先這么做了。

現(xiàn)在回到blur()方法:

  • 首先我創(chuàng)建了一個空的bitmap,把背景的一部分復(fù)制進去,之后我會對這個bitmap進行模糊處理并設(shè)置為TextView的背景。
  • 通過這個bitmap保存Canvas的狀態(tài);
  • 在父布局文件中把Canvas移動到TextView的位置;
  • ImageView的內(nèi)容繪到bitmap中;
  • 此時,我們就有了一個和TextView一樣大小的bitmap,它包含了ImageView的一部分內(nèi)容,也就是TextView背后一層布局的內(nèi)容;
  • 創(chuàng)建一個Renderscript的實例;
  • 把bitmap復(fù)制一份到Renderscript需要的數(shù)據(jù)片中;
  • 創(chuàng)建Renderscript模糊處理的實例;
  • 設(shè)置輸入,半徑范圍然后進行模糊處理;
  • 把處理后的結(jié)果復(fù)制回之前的bitmap中;
  • 好了,我們已經(jīng)把bitmap驚醒模糊處理了,可以將它設(shè)置為TextView背景了;

這是我們處理后的效果:

[[110858]]

可以看到效果還不錯,但是它用了57ms的時間。我們知道在Android中渲染一幀的時間應(yīng)該不超過16ms(60fps),但如果在UI線程中做模糊處理就會讓幀率降到了17fps。顯然這是不可接受的,我們需要把這個操作移到AsyncTask上或者使用別的機制實現(xiàn)。

而且有必要說明的是,ScriptIntrinsicBlur只支持API17以上,當(dāng)然也可以用Renderscript的support lib降低一些API版本的要求。

可是我們還是需要支持一些老一些的API版本,它們不支持Renderscript,現(xiàn)在我們看看該怎么辦吧。

FastBlur

因為我們知道,這種模糊處理的過程也就是像素處理而已,所以我們可以嘗試著手動進行模糊操作。幸運的是,Java上已經(jīng)有了很多實現(xiàn)模糊處理方案的例子。我們唯一要做的就是找到一個相對快速的實現(xiàn)方案。

感謝在StackOverFlow上的一篇帖子,我找到了一個能快速實現(xiàn)模糊處理的方案。先看看它是怎么樣的。

因為很多代碼都是一樣的,所以這里只討論關(guān)于模糊處理的函數(shù):

  1. private void blur(Bitmap bkg, View view) { 
  2.     long startMs = System.currentTimeMillis(); 
  3.     float radius = 20
  4.   
  5.     Bitmap overlay = Bitmap.createBitmap((int) (view.getMeasuredWidth()), 
  6.             (int) (view.getMeasuredHeight()), Bitmap.Config.ARGB_8888); 
  7.     Canvas canvas = new Canvas(overlay); 
  8.     canvas.translate(-view.getLeft(), -view.getTop()); 
  9.     canvas.drawBitmap(bkg, 00null); 
  10.     overlay = FastBlur.doBlur(overlay, (int)radius, true); 
  11.     view.setBackground(new BitmapDrawable(getResources(), overlay)); 
  12.     statusText.setText(System.currentTimeMillis() - startMs + "ms"); 

實現(xiàn)的效果如下:

[[110859]]

可以看到,模糊處理的效果也相當(dāng)不錯。使用FastBlur的好處是,我們可以去掉對Renderscript的依賴(還有最低API版本的限制)。但是可惡的是,理模糊操作竟然花費了147ms!這還不是最慢的SW模糊算法,我都不敢用高斯模糊了…

繼續(xù)深入

現(xiàn)在我們要想想該怎么做。模糊處理的過程都會有精度損失,你知道什么是精度損失嗎?對,要降低尺寸。

既然這樣,為什么不把bitmap的尺寸先降低然后進行模糊處理,然后再放大尺寸呢?我試著實現(xiàn)了一下這個想法,這是處理后得到的效果:

4

看到了嗎!Renderscript只用了13ms,F(xiàn)astBlur只用了2ms!還不錯。

再看看代碼。這里只討論FastBlur版本,因為Renderscript也是一樣的,全部代碼都可以從GitHub倉庫中檢出。

  1. private void blur(Bitmap bkg, View view) { 
  2.     long startMs = System.currentTimeMillis(); 
  3.     float scaleFactor = 1
  4.     float radius = 20
  5.     if (downScale.isChecked()) { 
  6.         scaleFactor = 8
  7.         radius = 2
  8.     } 
  9.   
  10.     Bitmap overlay = Bitmap.createBitmap((int) (view.getMeasuredWidth()/scaleFactor), 
  11.             (int) (view.getMeasuredHeight()/scaleFactor), Bitmap.Config.ARGB_8888); 
  12.     Canvas canvas = new Canvas(overlay); 
  13.     canvas.translate(-view.getLeft()/scaleFactor, -view.getTop()/scaleFactor); 
  14.     canvas.scale(1 / scaleFactor, 1 / scaleFactor); 
  15.     Paint paint = new Paint(); 
  16.     paint.setFlags(Paint.FILTER_BITMAP_FLAG); 
  17.     canvas.drawBitmap(bkg, 00, paint); 
  18.   
  19.     overlay = FastBlur.doBlur(overlay, (int)radius, true); 
  20.     view.setBackground(new BitmapDrawable(getResources(), overlay)); 
  21.     statusText.setText(System.currentTimeMillis() - startMs + "ms"); 

我們過一遍這個代碼:

  • scaleFactor提供了需要縮小的等級,在代碼中我把bitmap的尺寸縮小到原圖的1/8。因為這個bitmap在模糊處理時會先被縮小然后再放大,所以在我的模糊算法中就不用radius這個參數(shù)了,所以把它設(shè)成2。
  • 接著需要創(chuàng)建bitmap,這個bitmap比最后需要的小八倍。
  • 請注意我給Paint提供了FILTER_BITMAP_FLAG標(biāo)示,這樣的話在處理bitmap縮放的時候,就可以達到雙緩沖的效果,模糊處理的過程就更加順暢了。
  • 接下來和之前一樣進行模糊處理操作,這次的圖片小了很多,幅度也降低了很多,所以模糊過程非常快。
  • 把模糊處理后的圖片作為背景,它會自動進行放大操作的。

之前說到FastBlur進行模糊操作比Renderscript還要快,這是因為FastBlur在進行bitmap復(fù)制操作時還會同時進行其他 操作,節(jié)省了時間。經(jīng)過了這些處理后,我們應(yīng)該已經(jīng)掌握了相對快速的模糊處理方案和原理,并去掉了對Renderscript的依賴。

本文的示例代碼:GitHub – blurring

原文鏈接: trickyandroid   翻譯: chris

譯文鏈接: http://blog.jobbole.com/63894/

責(zé)任編輯:閆佳明 來源: blog.jobbole
相關(guān)推薦

2017-07-24 13:00:52

2009-09-14 17:10:57

LINQ模糊查詢

2019-08-12 15:17:23

USB模糊測試

2013-07-08 10:08:28

2014-07-16 17:01:16

2009-09-14 18:19:49

LINQ模糊查詢

2013-05-30 13:06:26

交換技術(shù)高級交換技術(shù)

2023-07-18 15:58:29

NodeJS開發(fā)

2024-01-04 08:00:00

人工智能深度學(xué)習(xí)

2022-09-27 08:00:00

零售商數(shù)據(jù)數(shù)據(jù)匹配

2009-07-02 11:15:31

學(xué)習(xí)JSP技術(shù)

2016-01-22 10:38:22

機器學(xué)習(xí)

2009-09-10 17:38:04

LINQ技術(shù)

2010-08-24 10:09:37

路由防止掉線

2022-04-30 08:43:52

Spring模塊化框架

2011-06-01 13:05:19

Android TTS技術(shù)

2017-03-06 14:44:49

Androidhook技術(shù)

2010-05-11 13:22:50

Unix awk

2017-09-13 10:51:25

技術(shù)人基礎(chǔ)知識互聯(lián)網(wǎng)技術(shù)

2023-06-09 15:34:32

數(shù)字孿生物聯(lián)網(wǎng)
點贊
收藏

51CTO技術(shù)棧公眾號

2022成人影院| 天天色综合久久| 一区二区电影| 精品美女一区二区| 久久美女福利视频| 免费大片黄在线| 国产69精品久久99不卡| 91精品久久久久久久久久久久| 一级性生活免费视频| 亚洲精品一区二区在线播放∴| 亚洲狼人国产精品| 久久久久无码国产精品一区| 亚洲午夜在线播放| 欧美日韩亚洲国产精品| 91国在线观看| 福利在线小视频| 日韩三级电影网| 狠狠综合久久| 亚洲人成五月天| 成人高清在线观看视频| 亚洲成人短视频| 樱花草国产18久久久久| 日本婷婷久久久久久久久一区二区| 国产色片在线观看| 日韩中文字幕区一区有砖一区 | 8x拔播拔播x8国产精品| 自拍偷拍你懂的| 日韩啪啪网站| 日韩精品一区二区三区视频| 九九热在线免费| 天堂а√在线最新版中文在线| 亚洲精品亚洲人成人网在线播放| 少妇精品久久久久久久久久| 熟妇高潮一区二区高潮| 国产激情精品久久久第一区二区| 国产精品精品一区二区三区午夜版| 国产系列精品av| 欧美日韩一区二区高清| xxxxx91麻豆| 精品成人无码一区二区三区| 色老板在线视频一区二区| 日韩一区二区三区电影在线观看| 天天干天天操天天玩| 性高爱久久久久久久久| 狠狠躁夜夜躁人人躁婷婷91 | 精品国一区二区三区| 亚洲一区二区在线视频观看| 国产精品蜜月aⅴ在线| 91成人在线精品| 国产性xxxx18免费观看视频| 黄色成人在线网| 一区二区成人在线| 老司机午夜免费福利视频| 免费日本一区二区三区视频| 国产精品免费aⅴ片在线观看| 日韩av电影免费在线观看| 欧洲天堂在线观看| 久久久欧美精品sm网站| 蜜桃视频在线观看91| 日韩av资源| 久久婷婷国产综合精品青草| 欧美精品久久久| 日本一区视频| 日本一区二区三区高清不卡| 亚洲激情啪啪| 色开心亚洲综合| 国产欧美精品在线观看| 亚洲精品中文字幕乱码三区不卡| 一区二区三区视频在线观看视频| 国产精品久久影院| 中文字幕一区综合| 宅男网站在线免费观看| 亚洲永久精品国产| 国产91xxx| 欧美xx视频| 欧美日韩国产不卡| 欧美69精品久久久久久不卡 | 日本一区视频在线观看| www视频在线观看免费| 国产精品久久久久久久午夜片| 一区二区日本| 2021中文字幕在线| 色婷婷精品久久二区二区蜜臀av| 男人女人黄一级| 亚洲高清国产拍精品26u| 日韩你懂的在线播放| 欧美xxxxx少妇| 国产成人高清| 不卡av在线播放| 日韩欧美一级视频| 成人一区不卡| 久久香蕉国产线看观看网| 欧美精品入口蜜桃| 国产精品久久久久久久免费软件 | 久久综合色天天久久综合图片| 日韩精品久久久毛片一区二区| 欧美极品另类| 午夜欧美在线一二页| 久久精品免费网站| 一区三区自拍| 国产一区二区成人| 久久久久久久久久综合| 日本在线不卡视频| 国产激情美女久久久久久吹潮| 欧美zozo| 亚洲一区二区欧美日韩| av污在线观看| 欧美一级全黄| 欧美久久久精品| 日韩一级片中文字幕| 国产v综合v亚洲欧| 亚洲一区二区三区加勒比| 99riav视频在线观看| 欧美日韩国产精选| 欧美成人国产精品一区二区| 欧美午夜一区二区福利视频| 国产精品久久久久久久久免费| 国产三级在线观看视频| 国产欧美日韩久久| 自慰无码一区二区三区| 欧美黄视频在线观看| 中文字幕欧美精品在线| 美女洗澡无遮挡| 你懂的国产精品| 国产精品一区二区性色av| 天天操天天干天天干| 亚洲色图另类专区| 最新中文字幕免费视频| 天美av一区二区三区久久| 久久99热这里只有精品国产| 亚洲无码久久久久| 国产欧美精品区一区二区三区| 好吊妞无缓冲视频观看| caoporn成人免费视频在线| 日韩视频在线观看免费| 91丨九色丨海角社区| 91亚洲国产成人精品一区二区三 | 欧美在线日韩精品| 97超碰免费在线| 亚洲国产精品字幕| 久久久久久久久99| 国产精品亚洲一区二区三区在线| 中文精品一区二区三区| 国产国产一区| 日韩一卡二卡三卡国产欧美| 91动漫免费网站| 麻豆91小视频| 一区二区精品在线观看| 欧美极品在线| 精品国模在线视频| 免看一级a毛片一片成人不卡| 精品在线一区二区三区| 中文字幕在线中文字幕日亚韩一区| 韩日精品一区| 色婷婷综合久久久久| 亚洲影视一区二区| 国产精品福利影院| 日本美女视频一区| 一级毛片免费高清中文字幕久久网| 91精品在线观| 97caopron在线视频| 日韩午夜激情免费电影| 久久亚洲成人av| www.一区二区| 99精品免费在线观看| 女人av一区| 美女啪啪无遮挡免费久久网站| 96日本xxxxxⅹxxx17| 亚洲免费在线看| 欧美久久久久久久久久久| 国内自拍视频一区二区三区| 国产麻豆日韩| 成人免费看视频网站| 尤物yw午夜国产精品视频| 91theporn国产在线观看| 亚洲人成7777| 欧美xxxxx精品| 久久青草久久| 9999在线观看| 激情av综合| 国产精品国产三级国产专播精品人| 免费在线观看黄色网| 亚洲第一精品福利| youjizz在线视频| 高清日韩电视剧大全免费| 国产精品一色哟哟| 亚洲免费福利一区| 91精品在线一区| 男人久久天堂| 久久久99久久精品女同性| 刘玥91精选国产在线观看| 中文字幕一区在线观看| 色综合久久久无码中文字幕波多| 国产精品一二| 少妇熟女一区二区| 少妇一区二区三区| 国产日韩中文字幕| 国产不卡人人| 久久视频在线看| 日本在线丨区| 欧美不卡视频一区| 中文字幕1区2区3区| 亚洲高清视频的网址| 免费看裸体网站| av在线不卡网| 国产大片一区二区三区| 校园激情久久| 中文精品无码中文字幕无码专区 | 丰满女人性猛交| 亚洲a级精品| 成人91视频| 成人在线app| 亚洲剧情一区二区| 丰满人妻一区二区三区免费| 欧美日韩一区高清| 午夜精品久久久久久久久久久久久蜜桃| 日本一区二区三区久久久久久久久不| 美女日批在线观看| 麻豆传媒一区二区三区| 男人亚洲天堂网| 日韩视频精品在线观看| 国产精品一区二| 日韩深夜福利网站| 国产成人97精品免费看片| 国产蜜臀av在线播放| 永久免费看mv网站入口亚洲| 婷婷视频在线观看| 精品欧美一区二区在线观看| 在线观看国产成人| 欧美色视频日本高清在线观看| 成人免费看片98| 亚洲精品视频在线观看免费 | 欧美精品少妇| 日韩国产高清污视频在线观看| 亚洲黄色一级大片| 欧美一区二区福利在线| 国产精品久久久久久久久久久久久久久久 | 中文字幕在线日韩 | 亚洲一区 中文字幕| 欧美在线视频你懂得| 日本中文字幕在线观看视频| 天天影视色香欲综合网老头| 日本熟妇毛耸耸xxxxxx| 亚洲国产日日夜夜| 日本最新中文字幕| 亚洲v日本v欧美v久久精品| 国产一级理论片| 亚洲国产综合在线| 国产无遮挡aaa片爽爽| 亚洲国产中文字幕| 日本少妇性高潮| 精品久久香蕉国产线看观看亚洲| 日韩成人一区二区三区| 五月天亚洲精品| 日韩欧美成人一区二区三区| 狠狠久久五月精品中文字幕| 欧美成人一区二区三区四区| 一本色道久久综合亚洲91| 波多野结衣二区三区| 欧美三级日韩三级| 国产农村妇女毛片精品| 日韩精品最新网址| 日本精品一区二区在线观看| 色嗨嗨av一区二区三区| 69视频免费看| 欧美精品一级二级三级| 精品毛片在线观看| 日本久久一区二区| 中文字幕 欧美激情| 6080日韩午夜伦伦午夜伦| 国产成人久久精品77777综合| 色狠狠色噜噜噜综合网| 中文字幕一区二区三区人妻四季| 欧美日本一区二区三区四区| 亚洲av少妇一区二区在线观看 | 影音先锋欧美在线| 我不卡神马影院| 日本精品福利视频| 一本色道久久综合亚洲精品不卡| 亚洲乱码国产一区三区| 精品夜夜嗨av一区二区三区| 岛国av免费观看| 国产午夜一区二区三区| 国产极品美女在线| 午夜精品在线视频一区| 激情网站在线观看| 日韩午夜激情av| 国产在线中文字幕| 久热精品视频在线免费观看| 欧亚av在线| 国产中文日韩欧美| 麻豆一区二区| 中文字幕在线中文字幕日亚韩一区| 欧美精选一区| 欧美一级黄色影院| 国产乱码字幕精品高清av| 国产精品伦子伦| 中文字幕字幕中文在线中不卡视频| 国产精品999久久久| 欧美日韩黄视频| 天堂av资源网| 久久精品久久久久久国产 免费| 乱人伦视频在线| 91老司机在线| 红桃视频在线观看一区二区| 18禁裸男晨勃露j毛免费观看| 日本视频一区二区| 国产xxxx视频| 亚洲精品一二三四区| 久久人人爽人人爽人人片av免费| 欧美mv日韩mv国产网站app| 成人午夜电影在线观看| 亚州国产精品久久久| www.久久久久爱免| 日本在线观看一区二区| 亚洲久久一区二区| 国产精品熟女一区二区不卡| 国产精品久久久久久久久免费相片 | 999精品一区| 精品久久久久av| 亚洲国产激情| 婷婷激情小说网| 国产精品久久久久影院老司| 成年人av网站| 日韩精品中文字幕视频在线| 丰满大乳少妇在线观看网站| 国产日韩欧美在线播放| 欧美日韩一区二区综合| 国产在线青青草| 久久一区视频| 黑人玩弄人妻一区二区三区| 亚洲精品国久久99热| 国产精品高潮呻吟av| 最近免费中文字幕视频2019| 久久精品女人天堂av免费观看 | 国内精品久久久久久久影视简单 | 日本成人在线电影网| 熟女高潮一区二区三区| 欧美视频中文字幕在线| 香港一级纯黄大片| 97国产真实伦对白精彩视频8| 99久热这里只有精品视频免费观看| 韩国黄色一级大片| 国产一区二区在线观看视频| 久久国产高清视频| 这里是久久伊人| 在线播放免费av| 成人三级在线| 亚洲午夜在线| 国产精品久久久久久亚洲色| 午夜激情综合网| 亚洲日本中文字幕在线| 2021久久精品国产99国产精品| 麻豆一区一区三区四区| 免费在线观看毛片网站| 久久久91精品国产一区二区精品 | 国产一区二区黑人欧美xxxx| 成人黄色视屏网站| 五月天色婷婷综合| 国产一二三精品| 精品深夜av无码一区二区老年| 亚洲风情亚aⅴ在线发布| 日韩脚交footjobhd| 欧美日韩在线播放一区二区| 日韩**一区毛片| 2025国产精品自拍| 欧美精品一区二区三区一线天视频 | 欧美综合激情网| 色爱综合网欧美| 免费不卡av在线| 91麻豆高清视频| 在线视频你懂得| 欧美国产精品va在线观看| 欧美a大片欧美片| 色综合手机在线| 亚洲综合色视频| 猫咪在线永久网站| 91精品久久久久久久| 怡红院精品视频在线观看极品| 亚洲一区二区三区四区五区六区| 在线免费观看视频一区| 九义人在线观看完整免费版电视剧| 波多野结衣成人在线| 国产农村妇女精品一区二区| 国产视频123区| 精品伦理精品一区| 写真福利精品福利在线观看| 免费成人进口网站| 91免费观看在线| 亚洲在线视频播放| 国外视频精品毛片| 色婷婷热久久| 午夜免费福利影院| 欧美色国产精品| 99热99re6国产在线播放| 青娱乐国产91| 成人午夜视频在线观看| 中文字幕在线观看国产| 久久全国免费视频| 日韩久久视频|