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

Android仿知乎創意廣告 廣告還能這么玩?

移動開發 Android
貌似前段時間刷知乎看到的一種非常有特色的廣告展現方式,即在列表頁,某一個Item顯示背后部分廣告圖,隨著列表滾動,會逐漸展示全部圖片。今天來給大家講解下,當然了,目前一些自定義View已經不算難題,所以本文的講解會做一些實現思路引導,相信不會是那么枯燥的文章,希望對大家有一定的幫助。

一、概述

貌似前段時間刷知乎看到的一種非常有特色的廣告展現方式,即在列表頁,某一個Item顯示背后部分廣告圖,隨著列表滾動,會逐漸展示全部圖片。

剛看到的時候就想實現一哈,一直比較懶,公眾號后臺也有人問如何實現,今天來給大家講解下,當然了,目前一些自定義View已經不算難題,所以本文的講解會做一些實現思路引導,相信不會是那么枯燥的文章,希望對大家有一定的幫助。

恩,現在知乎上已經找不到該效果了,試了多個歷史版本也沒找到,那只能貼實現的效果圖了~

效果圖如下:

 

 

2選1,你喜歡哪個效果圖呢~~

二、思路

好了,拋開別的,確定下本文的目標:

實現在列表中展示某張圖片:

  • 往上滾動:在圖片剛出現時展示頂部部分,隨著滾動部分展示全部
  • 往下滾動:在圖片剛出現時展示底部部分,隨著滾動部分展示全部

換句話說,我們需要在列表滾動時,改變圖片顯示的部分。

兩個點:

  • 捕獲列表滾動的dy,不管是ListView還是RecyclerView相信這一點都能做到
  • 圖片顯示部分變化,我們可以利用canvas.translate

結合一下,就是,監聽列表的滾動dy,傳給我們的圖片控件,設置translate,然后繪制。

到這里,思路非常清晰,這個東西肯定能做了。

初步方案:自定義一個View,自己去繪制bitmap,對外暴露setDy(dy),然后根據dy做canvas偏移重繪即可。

有了初步方案,基本不慌了,那么再想想?

能否利用已有的控件,比如ImageView呢?

肯定可以,這樣省去了我們去聲明一個接受圖片的屬性,我們編寫一個子類,依然是通過設置src去使用。

那繼承ImageView實現一波再說。

三、實現

首先我們先寫個假的列表,鑒于RV用的越來越多,就用RecyclerView吧。

布局

主布局文件,一個RecyclerView即可:

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <android.support.v7.widget.RecyclerView 
  3.     xmlns:android="http://schemas.android.com/apk/res/android" 
  4.     xmlns:app="http://schemas.android.com/apk/res-auto" 
  5.     android:id="@+id/id_recyclerview" 
  6.     android:layout_width="match_parent" 
  7.     android:layout_height="match_parent" 
  8.  /> 

item布局文件:

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:layout_width="match_parent" 
  4.     android:layout_height="wrap_content" 
  5.     android:background="@drawable/item_bg" 
  6.     android:gravity="center"
  7.  
  8.     <com.imooc.rvimageads.AdImageViewVersion1 
  9.         android:id="@+id/id_iv_ad" 
  10.         android:layout_width="match_parent" 
  11.         android:layout_height="180dp" 
  12.         android:scaleType="matrix" 
  13.         android:src="@mipmap/grsm" 
  14.         android:visibility="gone" /> 
  15.  
  16.     <TextView 
  17.         android:layout_margin="12dp" 
  18.         android:id="@+id/id_tv_title" 
  19.         android:layout_width="wrap_content" 
  20.         android:layout_height="wrap_content" 
  21.         android:text="這是title" 
  22.         android:textSize="16dp" 
  23.         android:textStyle="bold" /> 
  24.  
  25.     <TextView 
  26.         android:id="@+id/id_tv_desc" 
  27.         android:layout_width="wrap_content" 
  28.         android:layout_height="wrap_content" 
  29.         android:layout_below="@id/id_tv_title" 
  30.         android:layout_marginLeft="12dp" 
  31.         android:layout_marginRight="12dp" 
  32.         android:layout_marginBottom="12dp" 
  33.         android:text="這是描述" /> 
  34.  
  35. </RelativeLayout> 

很簡單,先不用管 AdImageViewVersion1 類,這將是我們具體的實現類。

通過布局文件,可以看到,我們只使用了一個item布局文件,然后通過visible,gone控制展示不同形態。

Activity

 

  1. public class MainActivity extends AppCompatActivity { 
  2.  
  3.     private RecyclerView mRecyclerView; 
  4.     private LinearLayoutManager mLinearLayoutManager; 
  5.  
  6.     @Override 
  7.     protected void onCreate(Bundle savedInstanceState) { 
  8.         super.onCreate(savedInstanceState); 
  9.         setContentView(R.layout.activity_main); 
  10.  
  11.         mRecyclerView = findViewById(R.id.id_recyclerview); 
  12.  
  13.         List<String> mockDatas = new ArrayList<>(); 
  14.         for (int i = 0; i < 100; i++) { 
  15.             mockDatas.add(i + ""); 
  16.         } 
  17.  
  18.         mRecyclerView.setLayoutManager(mLinearLayoutManager = new LinearLayoutManager(this)); 
  19.  
  20.         mRecyclerView.setAdapter(new CommonAdapter<String>(MainActivity.this, 
  21.                 R.layout.item, 
  22.                 mockDatas) { 
  23.             @Override 
  24.             protected void convert(ViewHolder holder, String o, int position) { 
  25.                 if (position > 0 && position % 6 == 0) { 
  26.                     holder.setVisible(R.id.id_tv_title, false); 
  27.                     holder.setVisible(R.id.id_tv_desc, false); 
  28.                     holder.setVisible(R.id.id_iv_ad, true); 
  29.                 } else { 
  30.                     holder.setVisible(R.id.id_tv_title, true); 
  31.                     holder.setVisible(R.id.id_tv_desc, true); 
  32.                     holder.setVisible(R.id.id_iv_ad, false); 
  33.                 } 
  34.             } 
  35.         }); 

僅僅是設置數據了,Adapter這里用了

  1. compile 'com.zhy:base-rvadapter:3.0.3' 

你可以隨便用一個你自己喜歡的Adapter封裝類。

到這里,一個列表頁就顯示出來了,并且每隔6個會顯示成圖片。

不截圖了,腦補下…

現在才正式開始實現。

自定義AdImageView

 

  1. public class AdImageViewVersion1 extends AppCompatImageView { 
  2.     public AdImageViewVersion1(Context context, @Nullable AttributeSet attrs) { 
  3.         super(context, attrs); 
  4.     } 
  5.  
  6.     private RectF mBitmapRectF; 
  7.     private Bitmap mBitmap; 
  8.  
  9.     private int mMinDy; 
  10.  
  11.     @Override 
  12.     protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
  13.         super.onSizeChanged(w, h, oldw, oldh); 
  14.  
  15.         mMinDy = h; 
  16.         Drawable drawable = getDrawable(); 
  17.  
  18.         if (drawable == null) { 
  19.             return
  20.         } 
  21.  
  22.         mBitmap = drawableToBitamp(drawable); 
  23.         mBitmapRectF = new RectF(0, 0, 
  24.                 w, 
  25.                 mBitmap.getHeight() * w / mBitmap.getWidth()); 
  26.  
  27.     } 
  28.  
  29.  
  30.     private Bitmap drawableToBitamp(Drawable drawable) { 
  31.         if (drawable instanceof BitmapDrawable) { 
  32.             BitmapDrawable bd = (BitmapDrawable) drawable; 
  33.             return bd.getBitmap(); 
  34.         } 
  35.         int w = drawable.getIntrinsicWidth(); 
  36.         int h = drawable.getIntrinsicHeight(); 
  37.         Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); 
  38.         Canvas canvas = new Canvas(bitmap); 
  39.         drawable.setBounds(0, 0, w, h); 
  40.         drawable.draw(canvas); 
  41.         return bitmap; 
  42.     } 
  43.  
  44.     // ... 省略一些代碼 

因為我們要繪制,所以這里我們把drawable轉成bitmap,然后我們默認要顯示***部,所以需要一個最小的偏移,即控件高度。

這些事情,我們都在onSizeChanged做了。

并且我們根據當前控件寬度,對bitmap進行了縮放,并將縮放后的尺寸存在了mBitmapRectF中,以便于繪制。

那么接下來就是繪制了,還記得繪制過程中,我們主要利用translate來控制繪制的區域,所以我們還要對外暴露一個setDy方法,so,我們的代碼大致是這樣的:

 

  1. private int mDy; 
  2.  
  3. public void setDy(int dy) { 
  4.  
  5.     if (getDrawable() == null) { 
  6.         return
  7.     } 
  8.     mDy = dy - mMinDy; 
  9.     if (mDy <= 0) { 
  10.         mDy = 0; 
  11.     } 
  12.     if (mDy > mBitmapRectF.height() - mMinDy) { 
  13.         mDy = (int) (mBitmapRectF.height() - mMinDy); 
  14.     } 
  15.     invalidate(); 
  16.  
  17. @Override 
  18. protected void onDraw(Canvas canvas) { 
  19.     if (mBitmap == null) { 
  20.         return
  21.     } 
  22.     canvas.save(); 
  23.     canvas.translate(0, -mDy); 
  24.     canvas.drawBitmap(mBitmap, null, mBitmapRectF, null); 
  25.     canvas.restore(); 

setDy的時候,我們做了一個邊界判斷,最小的情況,我們偏移-mMinDy,顯示圖片的底部。

***的時候,我們便宜圖片高度-mMinDy,顯示頂部部分。

所以我們對傳入的值做了最小與***值判斷。

那么在繪制的時候,就簡單了,先translate dy距離,然后繪制即可。

到這里我們的自定義View部分就結束了,代碼很少~

結合RecyclerView

接下來就是在RecyclerView滾動時,給我們傳入dy即可。

 

  1. mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
  2.     @Override 
  3.     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
  4.         super.onScrolled(recyclerView, dx, dy); 
  5.  
  6.         int fPos = mLinearLayoutManager.findFirstVisibleItemPosition(); 
  7.         int lPos = mLinearLayoutManager.findLastCompletelyVisibleItemPosition(); 
  8.         for (int i = fPos; i <= lPos; i++) { 
  9.             View view = mLinearLayoutManager.findViewByPosition(i); 
  10.             AdImageViewVersion1 adImageView = view.findViewById(R.id.id_iv_ad); 
  11.             if (adImageView.getVisibility() == View.VISIBLE) { 
  12.                 adImageView.setDy(mLinearLayoutManager.getHeight() - view.getTop()); 
  13.             } 
  14.         } 
  15.     } 
  16. }); 

通過addOnScrollListener監聽,當滾動時,拿到所有可見的Item,找出正在顯示圖片的Item。然后調用setDy,dy的值為 mLinearLayoutManager.getHeight() - view.getTop() ,當View從***部出現的時候為0,當View到達最頂部的時候為當前rv的高度。

你可以合理的利用setDy傳入的值,做移動差,顯示區域從上到下等,都可以。

這樣就完成了~~

 

一句話實現:即滾動時不斷改變dy,然后translate繪制即可。

四、再想想

看著這個代碼,好像 drawableToBitamp 看起來非常不爽,也是比較耗內存的部分。我們再想想:

本身Drawable就是能繪制的,為什么我們要轉成bitmap呢?

好像有道理,ImageView本身繪制的就是Drawable,我們需要控制的就是這個Drawable的繪制范圍要足夠大,不能被控件本身的寬高所影響,導致圖片被壓扁。

好像有那么一個方法:

  1. drawable.setBounds(); 

那就簡單了,去除drawable2bitmap的代碼,直接利用原本的繪制即可,我們唯一要做的就是設置bounds,做一個translate dy即可。

完整代碼:

 

  1. public class AdImageView extends AppCompatImageView { 
  2.     // 刪除構造方法 
  3.  
  4.     private int mDx; 
  5.     private int mMinDx; 
  6.  
  7.     public void setDx(int dx) { 
  8.         if (getDrawable() == null) { 
  9.             return
  10.         } 
  11.         mDx = dx - mMinDx; 
  12.         if (mDx <= 0) { 
  13.             mDx = 0; 
  14.         } 
  15.         if (mDx > getDrawable().getBounds().height() - mMinDx) { 
  16.             mDx = getDrawable().getBounds().height() - mMinDx; 
  17.         } 
  18.         invalidate(); 
  19.     } 
  20.  
  21.     @Override 
  22.     protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
  23.         super.onSizeChanged(w, h, oldw, oldh); 
  24.         mMinDx = h; 
  25.     } 
  26.  
  27.     public int getDx() { 
  28.         return mDx; 
  29.     } 
  30.  
  31.     @Override 
  32.     protected void onDraw(Canvas canvas) { 
  33.  
  34.         Drawable drawable = getDrawable(); 
  35.         int w = getWidth(); 
  36.         int h = (int) (getWidth() * 1.0f / drawable.getIntrinsicWidth() * drawable.getIntrinsicHeight()); 
  37.         drawable.setBounds(0, 0, w, h); 
  38.         canvas.save(); 
  39.         canvas.translate(0, -getDx()); 
  40.         super.onDraw(canvas); 
  41.         canvas.restore(); 
  42.     } 

短短的代碼就實現了,這樣看起來順眼多了~~

再貼下效果圖:

 

效果圖主要看字,你懂的!

好了,本篇總結:

  • 看到當看一個效果,可以先對它進行拆分,找出關鍵點,針對每個關鍵點,考慮可行性。
  • 如果確定每個點都可行,那么基本的方案就出來了。
  • 有了基本的方案,不要著急寫,再想想還有無改善空間。

例子比較簡單,have a nice day ~~

責任編輯:未麗燕 來源: Hongyang
相關推薦

2022-10-31 08:47:21

人臉識別按鍵鍵盤

2020-05-09 16:45:56

ping命令Linux

2011-10-12 09:35:59

移動應用互動廣告手機游戲

2024-03-25 08:03:32

技術面試ShowMeBug協同編程

2024-10-28 07:10:00

scroll標記前端網格布局

2019-07-08 17:54:47

惠普

2020-12-02 15:22:30

版本成本Playturbo

2015-07-21 15:22:20

點贊仿知乎按鈕動畫

2025-08-18 07:35:40

2014-11-03 16:27:58

鷹目

2014-01-23 10:07:31

移動廣告廣告商banner

2025-06-12 10:25:13

Android 16通知欄進度條

2020-08-14 08:19:25

Shell命令行數據

2021-04-01 05:40:53

分庫分表數據庫MySQL

2017-03-07 09:49:18

存儲

2022-01-04 08:00:48

前端技術Esbuild

2013-03-04 12:58:09

原生廣告移動廣告

2022-11-28 16:16:06

2020-01-07 10:35:21

QQQQ群手機QQ
點贊
收藏

51CTO技術棧公眾號

国产一二三区av| 51国偷自产一区二区三区| 中文字幕在线看高清电影| 伊人久久高清| 亚洲人吸女人奶水| 国内外成人免费视频| 免费看毛片网站| 68国产成人综合久久精品| 337p日本欧洲亚洲大胆色噜噜| 日日橹狠狠爱欧美超碰| 免费在线你懂的| 成人av免费在线| 国产v综合ⅴ日韩v欧美大片| 黄色a级片在线观看| 亲子伦视频一区二区三区| 色国产综合视频| 久久这里只有精品8| 97视频在线观看网站| 国产一级二级毛片| 免费看电影在线| 欧美国产日本视频| 国产精品theporn88| 国产成人自拍偷拍| 国内精品嫩模av私拍在线观看| 亚洲色图激情小说| 日本道中文字幕| 91麻豆精品一二三区在线| 狠狠躁夜夜躁人人爽超碰91| 视频一区二区视频| 国产女主播在线写真| 成人激情av网| 亚洲一区二区三区视频播放| 中文字幕有码视频| 噜噜爱69成人精品| 久久久欧美一区二区| 亚洲不卡的av| 欧美日韩国产一区二区三区不卡| 亚洲精品国精品久久99热| 天堂网成人在线| 亚洲一区有码| 欧美色综合天天久久综合精品| 国产又黄又大又粗视频| 免费毛片在线看片免费丝瓜视频 | 快灬快灬一下爽蜜桃在线观看| 成人在线视频中文字幕| 日韩一区二区在线看片| 一区二区三区国产好的精华液| 国产麻豆久久| 欧美综合久久久| 久久精品午夜福利| 韩国美女久久| 色悠久久久久综合欧美99| 大j8黑人w巨大888a片| 2019中文字幕在线电影免费| 亚洲国产中文字幕| 久久av综合网| 2021天堂中文幕一二区在线观| 亚洲电影激情视频网站| www.好吊操| 国产精品186在线观看在线播放| 天天爽夜夜爽夜夜爽| 欧美日韩一区二区三区四区在线观看 | 欧美国产1区2区| 欧美日韩一区二区视频在线 | 久久午夜羞羞影院免费观看| 久久影院理伦片| 人人九九精品| 久久影院午夜片一区| 日韩激情视频| 在线视频91p| 亚洲色图另类专区| 日韩精品久久一区二区| 91高清视频在线观看| 欧美日韩国产限制| 欧美日韩一区二区在线免费观看 | 欧美国产高潮xxxx1819| 欧美激情极品视频| 日韩特黄一级片| 日韩—二三区免费观看av| 国产精品免费福利| 国产三区在线播放| kk眼镜猥琐国模调教系列一区二区| 国产九色精品| 国产在线一二| 亚洲精品欧美二区三区中文字幕| 色中文字幕在线观看| 欧美性爽视频| 在线一区二区三区四区五区 | 中文字幕一区二区三区电影| 艳妇荡乳欲伦69影片| 狠狠爱综合网| 国产成人精品av在线| 国产情侣av在线| 99免费精品在线观看| 亚洲午夜高清视频| 免费在线中文字幕| 欧美亚洲国产怡红院影院| 一级片黄色免费| 杨幂一区二区三区免费看视频| 色综久久综合桃花网| 国产一级片网址| 日韩免费va| 激情视频一区二区三区| 欧美极品在线视频| 中文无码av一区二区三区| 国产成人综合在线播放| 青青草原成人| 黄色大片在线| 欧美特级限制片免费在线观看| 亚洲精品乱码久久久久久9色| 啪啪亚洲精品| 高清欧美性猛交xxxx黑人猛交| 最近中文字幕av| 成人精品视频一区| 在线综合视频网站| 成人免费短视频| 欧美成人bangbros| 欧美性猛交xxxx乱大交少妇| 国产一级一区二区| 91成人免费看| 日本中文在线| 91福利精品视频| 国产精品麻豆入口| 欧美欧美全黄| 国产中文欧美精品| 黄色在线视频观看网站| 亚洲成va人在线观看| 亚洲一级片av| 精品久久综合| 日韩av理论片| 日韩一二三四| 精品日韩视频在线观看| 亚洲av熟女高潮一区二区| 99精品在线| 国产精品久久久久久久久免费看 | bt7086福利一区国产| 免费观看中文字幕| 日韩综合久久| 最新亚洲国产精品| 中文无码av一区二区三区| 久久免费午夜影院| 日韩欧美国产免费| 亚洲aaa级| 97免费视频在线播放| 天堂网在线观看视频| 亚洲午夜精品在线| 波多野结衣三级视频| 欧美激情日韩| 99r国产精品视频| 欧美xxxx做受欧美88bbw| 欧美一区二区三区免费视频| 亚洲国产精品久久久久| 色哟哟无码精品一区二区三区| 亚洲一区色图| 91嫩草在线视频| 美女国产在线| 欧美精品精品一区| 日本青青草视频| 国产精品一区二区在线看| 经典三级在线视频| 日本一区影院| 久久久久亚洲精品| 在线观看xxx| 色婷婷av一区二区三区gif| 91久久免费视频| 奇米777欧美一区二区| 亚洲日本一区二区三区在线不卡| 久久av影院| 久久成人精品一区二区三区| 亚洲精品网站在线| 丁香五六月婷婷久久激情| 泷泽萝拉在线播放| 蜜桃视频一区二区| 永久免费网站视频在线观看| 动漫视频在线一区| 日本中文字幕成人| 黄色小网站在线观看| 欧美成人欧美edvon| 九九热精品视频在线| 久久久久久久久久久电影| 欧美美女一级片| 国产精品地址| 欧美在线3区| 99视频这里有精品| 91精品成人久久| 91ph在线| 亚洲第一精品夜夜躁人人躁| 日本一本在线观看| 亚洲精品亚洲人成人网在线播放| www.四虎精品| 青青草国产精品97视觉盛宴| 少妇久久久久久被弄到高潮| 亚洲桃色综合影院| 亚洲第一天堂av| 开心色怡人综合网站| 678在线观看视频| 一本一本久久a久久精品综合小说| 国产三级三级在线观看| 欧美午夜精品在线| 欧美老熟妇一区二区三区| 成人高清视频免费观看| 91香蕉视频导航| 99精品视频免费观看视频| 日韩亚洲欧美精品| 国产欧美一区二区三区米奇| 国产精品视频区1| 中国色在线日|韩| 欧美成aaa人片免费看| 飘雪影院手机免费高清版在线观看| 欧美日韩一区二区在线视频| 久久久久久久久久久97| 国产偷v国产偷v亚洲高清| 亚洲女则毛耸耸bbw| 美女诱惑一区二区| jizzjizzxxxx| 一区二区三区午夜视频| 日韩欧美一区二区三区四区五区| 中文字幕日韩在线| 国产精品久久久久久久久久尿 | 午夜精品久久久久久久久久| 亚洲熟女毛茸茸| 久草免费在线| 亚洲人妖av一区二区| xxx在线播放| a亚洲天堂av| 日本泡妞xxxx免费视频软件| 极品少妇xxxx精品少妇| 91激情视频在线| 亚洲永久网站| 国产伦精品一区二区三区四区视频_| 91精品久久久久久久久久不卡| 日韩在线观看电影完整版高清免费| 欧美精品国产白浆久久久久| 国产精品久久久久久免费观看| 日韩三级精品| 成人性生交大片免费观看嘿嘿视频 | 99热在线只有精品| 欧美日韩激情一区二区三区| 91麻豆精品在线| 色呦呦日韩精品| 青青视频在线免费观看| 日韩欧美成人免费视频| 国产成人免费看| 丁香五六月婷婷久久激情| 欧美一级视频免费观看| 亚洲成人久久影院| 国产精品美女毛片真酒店| 亚洲第一狼人社区| 国产在线拍揄自揄拍无码视频| 亚洲自拍偷拍av| 国产亚洲成人精品| 亚洲午夜精品网| 日韩免费在线视频观看| 亚洲6080在线| 欧美激情黑白配| 色哟哟欧美精品| 欧美成人一区二区视频| а√在线中文网新版地址在线| 日韩大片免费观看视频播放| 亚洲色图欧美视频| 亚洲女人天堂av| 国产色a在线| 久久精品99国产精品酒店日本| 黄a在线观看| 色综合久久88| 美女的胸无遮挡在线观看| 欧美一区三区三区高中清蜜桃| 亚洲wwww| 亚洲xxxxx电影| 久久成人福利| 日本亚洲导航| 国产精品久久久久无码av| 久久久久久久久久久综合| 亚洲三级国产| 久久人妻精品白浆国产| 久久成人免费网站| 亚洲精品久久久久久| 99精品在线观看视频| 高清国产在线观看| 亚洲色欲色欲www在线观看| 久一视频在线观看| 日本精品一区二区三区高清| 国产一区二区在线不卡| 欧美精品一区男女天堂| 国产三级视频在线| 欧美精品一本久久男人的天堂| 高清在线视频不卡| 国产精品露脸自拍| 我要色综合中文字幕| 欧美日韩一区二区三区在线视频 | 国产欧美一区二区精品性| 日本激情视频一区二区三区| 亚洲国产综合在线| 在线观看国产小视频| 亚洲国产成人精品女人久久久| 懂色一区二区三区| 欧美—级a级欧美特级ar全黄 | 亚洲伊人久久综合| 天堂一区二区三区四区| 亚洲最新免费视频| 国产精品一页| 五月天丁香花婷婷| 久久综合中文字幕| √天堂中文官网8在线| 欧美性xxxx极品高清hd直播| 国产人妻精品一区二区三区| 亚洲欧美日韩一区二区在线| 在线免费av导航| 国产成人精品久久| 美日韩黄色大片| gogogo免费高清日本写真| 久久一区中文字幕| 91传媒理伦片在线观看| 国产精品人人做人人爽人人添| 日本在线观看中文字幕| 欧美一卡二卡在线观看| 成人在线观看一区| 国模视频一区二区三区| 久久久精品91| 国产精品亚洲午夜一区二区三区| 3d动漫精品啪啪一区二区下载| 一个色综合av| 一本色道久久综合亚洲| 亚洲精品视频免费在线观看| 91超碰在线播放| 2019国产精品视频| 亚洲二区三区不卡| www.日本一区| 国产日韩影视精品| 日本一区二区三区精品| 日韩电影大片中文字幕| 亚洲第一图区| 91久久大香伊蕉在人线| 久久一本综合| 极品粉嫩美女露脸啪啪| 欧美国产激情二区三区| 亚洲精品一区二三区| 国产亚洲欧洲高清| 人人鲁人人莫人人爱精品| 久99久视频| 亚洲日本久久| 欧美 日本 国产| 丁香五六月婷婷久久激情| 亚洲av成人无码久久精品老人| 久久久久久免费精品| 国内自拍欧美| 精品久久久久久久久久中文字幕| 成人网页在线观看| 国产无套内射又大又猛又粗又爽| 亚洲成人网在线| 2019中文字幕在线电影免费 | 精品久久久中文字幕| 国产aaaaa毛片| 国产精品免费久久| 91好色先生tv| 精品少妇v888av| 91成人精品在线| 国内自拍在线观看| 久久久精品一品道一区| 国模私拍一区二区| 日韩视频在线观看免费| 日本精品在线播放| www..com日韩| 久久久久久97三级| 中文字幕在线观看视频一区| 久久久国产在线视频| 日韩精品一区二区三区中文字幕 | 亚洲伦理一区二区三区| 欧美一区二区三级| h片在线观看视频免费| 欧美国产二区| 麻豆精品一区二区| 在线免费观看亚洲视频| 亚洲高清不卡av| 免费观看成人性生生活片 | 在线看片日韩| 精品成人av一区二区三区| 欧美日韩精品一区二区三区| av毛片在线免费| 久久精品日产第一区二区三区精品版 | 欧美国产日产图区| 国产黄a三级三级三级| 26uuu久久噜噜噜噜| 水蜜桃精品av一区二区| 黑人玩弄人妻一区二区三区| 在线亚洲欧美专区二区| 在线看女人毛片| 欧美一区1区三区3区公司| av综合电影网站| 亚洲无av在线中文字幕| 成人在线不卡| 无码粉嫩虎白一线天在线观看| 国产三级精品三级在线专区| 国产按摩一区二区三区| 日韩av免费看| 一区二区亚洲| 老司机成人免费视频| 亚洲免费伊人电影在线观看av| 99综合99| 五月婷婷激情久久|