日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

仿微信朋友圈【九宫格的实现】

發(fā)布時(shí)間:2024/1/8 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 仿微信朋友圈【九宫格的实现】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

仿微信朋友圈【九宮格的實(shí)現(xiàn)】

標(biāo)簽:?九宮格自定義viewgroup ? 561人閱讀? 評(píng)論(0)? 收藏? 舉報(bào) ? 分類: Android(25)?

目錄(?)[+]

最近有個(gè)想法,想用環(huán)信的sdk去做個(gè)社交類的小demo玩。在此之前,先來(lái)模仿下微信的朋友圈九宮格效果。同時(shí)也兼容了QQ的做法,如果數(shù)據(jù)集大于九張時(shí),就在最后一張圖片上顯示一層遮罩效果,并顯示剩余圖片的數(shù)量。之后的計(jì)劃是仿微信的朋友圈評(píng)論、回復(fù)這方面的效果,在實(shí)際開發(fā)中還是比較實(shí)用的。

老規(guī)矩,先來(lái)張效果圖(錄制的圖片太大滿足不了神經(jīng)的CSDN上傳要求,壓縮又不清晰,所以還是放幾張靜態(tài)圖吧)?

需求分析

  • 單張的情況,我們需要考慮圖片的寬度與我們自定義九宮格控件的寬度,如果圖片的寬度大于控件的寬度,那么我們就用控件的寬度作為圖片的寬度
  • 2 X 2的情況,微信朋友圈對(duì)于4張的圖片,采用的是2 X 2的布局方式
  • 當(dāng)圖片集大于9張時(shí),我們需要在最后一張圖片上顯示一層遮罩,并顯示出剩余的圖片數(shù)量
  • 最后一點(diǎn)需要特別注意,就是關(guān)于我們自定義控件的復(fù)用。比如說我們滑出屏幕的一個(gè)item的布局是7張圖片,這時(shí)滑進(jìn)屏幕的item是6張圖片的布局,難道我們還需要再重新new出來(lái)六個(gè)imageview?當(dāng)然不是,我們完全可以復(fù)用滑出屏幕的那個(gè)布局,同時(shí)移除一個(gè)imageview即可。反之如果當(dāng)前滑入的item是9張,那么復(fù)用后就只需要再new出來(lái)兩個(gè)imageview控件即可。其實(shí)是跟ListView的復(fù)用機(jī)制思想差不多。
  • 根據(jù)上面的分析,實(shí)現(xiàn)起來(lái)應(yīng)該相對(duì)有些思路了。下面就開啟自定義模式了

    自定義屬性

    <?xml version="1.0" encoding="utf-8"?> <resources><declare-styleable name="NineGridView"><attr name="nine_gv_spacing" format="dimension"/><attr name="nine_maxImageNum" format="integer"/><attr name="nine_single_image" format="dimension"/></declare-styleable> </resources>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在我們自定義類的構(gòu)造方法中去獲取我們的自定義屬性

    public NineGridView(Context context) {this(context, null);}public NineGridView(Context context, AttributeSet attrs) {this(context, attrs, 0);}public NineGridView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);//單位轉(zhuǎn)換mNineGridViewSpacing = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, mNineGridViewSpacing, context.getResources().getDisplayMetrics());mSingleImageSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, mSingleImageSize, context.getResources().getDisplayMetrics());//獲取自定義屬性TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.NineGridView, defStyleAttr, 0);int count = typedArray.getIndexCount();for (int i=0; i<count; i++){int attr = typedArray.getIndex(i);switch (attr){case R.styleable.NineGridView_nine_gv_spacing:mNineGridViewSpacing = (int) typedArray.getDimension(attr, mNineGridViewSpacing);break;case R.styleable.NineGridView_nine_maxImageNum:mMaxImageNum = typedArray.getInt(attr, mMaxImageNum);break;case R.styleable.NineGridView_nine_single_image:mSingleImageSize = typedArray.getDimensionPixelSize(attr, mSingleImageSize);break;}}typedArray.recycle();}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    測(cè)量 onMeasure

    測(cè)量我們控件的寬高等,這里根據(jù)上面的分析可知我們需要對(duì)單張圖片以及非單張圖片進(jìn)行判斷。如果是多張圖片的話,我們需要根據(jù)行、列個(gè)數(shù)以及每行每列之間的間距值來(lái)算出最終的寬、高

    @Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);int widthMode = MeasureSpec.getMode(widthMeasureSpec);int heightMode = MeasureSpec.getMode(heightMeasureSpec);int widthSize = MeasureSpec.getSize(widthMeasureSpec);int heightSize;int totalWidth = widthSize - getPaddingLeft() - getPaddingRight();if(imagesDatasList != null && imagesDatasList.size() > 0){if(imagesDatasList.size() == 1){//說明是單張圖片mWidth = mSingleImageSize > totalWidth ? (int)(totalWidth * 0.8) : mSingleImageSize;mHeight = mWidth;//進(jìn)一步根據(jù)高度來(lái)調(diào)整顯示,控制最大顯示范圍if(mHeight > mSingleImageSize){float ratio = mSingleImageSize * 1.0f / mHeight;mWidth = (int) (mWidth * ratio);mHeight = mSingleImageSize;}}else{//說明不止一張mWidth = mHeight = (totalWidth - mNineGridViewSpacing*(columnCount - 1)) / columnCount;}widthSize = mWidth * columnCount + mNineGridViewSpacing * (columnCount - 1) + getPaddingLeft() + getPaddingRight();heightSize = mHeight * rowCount + mNineGridViewSpacing * (rowCount - 1) + getPaddingTop() + getPaddingBottom();setMeasuredDimension(widthSize, heightSize);}else{heightSize = widthSize;setMeasuredDimension(widthSize, heightSize);}}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    其實(shí),實(shí)際開發(fā)中可能服務(wù)器返回的還有圖片的寬高比例,那么我們可以根據(jù)這個(gè)寬高比例還算出圖片的高度等等,具體情況根據(jù)業(yè)務(wù)來(lái)定。

    確定位置 onLayout

    既然是自定義ViewGroup,那么onLayout()方法肯定少不了。它是用來(lái)確定子view的位置的

    @Overrideprotected void onLayout(boolean changed, int left, int top, int right, int bottom) {if(imagesDatasList == null) return;int childCount = imagesDatasList.size() > mMaxImageNum ? mMaxImageNum : imagesDatasList.size();for(int i = 0; i < childCount; i++){ImageView childView = (ImageView) getChildAt(i);if(mAdapter != null){mAdapter.onDisplayImage(getContext(), childView, imagesDatasList.get(i));//得到圖片數(shù)組中的每一張圖片}//通過此方式來(lái)確定寬高是否累加、換行,一并判斷了int columnNum = i % columnCount;int rowNum = i / columnCount;left = (mWidth + mNineGridViewSpacing ) * columnNum + getPaddingLeft();//根據(jù)i來(lái)決定left, i=0 left=getPaddingLeft i=1表示第二個(gè)childView的left=第一個(gè)child的寬+間距+內(nèi)間距top = (mHeight + mNineGridViewSpacing) * rowNum + getPaddingTop();right = left + mWidth;bottom = top + mHeight;childView.layout(left, top, right, bottom);}}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    接下來(lái)就是我們的adapter跟這個(gè)自定義控件的交互了

    public void setData(List<String> mDataLists){//有無(wú)數(shù)據(jù)決定著九宮格控件的顯示與隱藏if(mDataLists == null || mDataLists.isEmpty()){this.setVisibility(View.GONE);return;}else{this.setVisibility(View.VISIBLE);}//獲取圖片數(shù)量,圖片的數(shù)量有可能大于規(guī)定的最大數(shù)量9張int newImgCount = mDataLists.size() > mMaxImageNum ? mMaxImageNum : mDataLists.size();//給rowCount、columnCount行列賦值。對(duì)圖片的分布特殊處理,比如 四張 2 X 2 分布setRowAndColumn(newImgCount);//復(fù)用if(imagesDatasList == null){for(int i = 0; i < newImgCount; i++){ImageView iv = imageViewHolder(i);if(iv == null) return;addView(iv, generateDefaultLayoutParams());}} else {int oldImgCount = imagesDatasList.size() > mMaxImageNum ? mMaxImageNum : imagesDatasList.size();//原來(lái)的圖片數(shù)據(jù)數(shù)量if(newImgCount < oldImgCount){//說明可以復(fù)用原來(lái)的imageview 移除后面多余的view(imageview)布局removeViews(newImgCount,oldImgCount - newImgCount);}else if(newImgCount > oldImgCount){//說明需要再新new幾個(gè)imageview提供多余的數(shù)據(jù)使用for(int i=oldImgCount; i < newImgCount; i++){ImageView iv = imageViewHolder(i);if(iv == null) return;addView(iv, generateDefaultLayoutParams());//將imageview添加到默認(rèn)寬高的布局中}}}//如果是最后一張,并且圖片的數(shù)據(jù)集總數(shù)大于九張,那么就在最后一張圖片上展示還剩圖片的數(shù)量if (mDataLists.size() > mMaxImageNum){View child = getChildAt(mMaxImageNum - 1);//九宮格的最后一張圖片if(child instanceof MyGridViewItemImageView){MyGridViewItemImageView imageView = (MyGridViewItemImageView) child;imageView.setImagesCount(mDataLists.size());}}imagesDatasList = mDataLists;//當(dāng)view布局內(nèi)容發(fā)生改變后調(diào)用此方法會(huì)重新走onMeasure()和onLayout()方法,重新調(diào)整布局//requestLayout(); //因?yàn)閍ddViews()方法內(nèi)部已經(jīng)有requestLayout()了}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    我們需要在展示數(shù)據(jù)的adapter中去調(diào)用此方法。這里為了調(diào)用的簡(jiǎn)潔,我們額外定義了一個(gè)抽象類。

    public abstract class NineGridViewAdapter {protected abstract void onDisplayImage(Context context, ImageView iv, String url);protected void onItemImageClick(Context context, ImageView iv, int position, List<String> list){}protected ImageView generateImageView(Context context){MyGridViewItemImageView imageView = new MyGridViewItemImageView(context);//設(shè)置圖片的點(diǎn)擊背景顏色變化效果imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);return imageView;} }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    這里需要特別說明的是generateImageView()方法,這里面我們new出來(lái)我們的九宮格中的一張張圖片。同時(shí),還就點(diǎn)擊圖片變暗的點(diǎn)擊效果以及超過9張后的效果處理。下面就具體看看

    /*** 設(shè)置圖片點(diǎn)擊時(shí)有個(gè)背景色,松手后移除背景色 類似XML文件設(shè)置selector效果*/public class MyGridViewItemImageView extends ImageView{private int textColor = Color.parseColor("#FFFFFF");private int textSize;private int imageViewBg = 0x88000000;private int imagesCount;//總的數(shù)據(jù)集private String textDesc;//要繪制的文字private Paint paint;public MyGridViewItemImageView(Context context) {this(context, null);}public MyGridViewItemImageView(Context context, AttributeSet attrs) {this(context, attrs, 0);}public MyGridViewItemImageView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);textSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 32, context.getResources().getDisplayMetrics());//初始化畫筆iniPaint();}private void iniPaint() {paint = new Paint();paint.setAntiAlias(true);paint.setDither(true);paint.setColor(textColor);paint.setTextSize(textSize);paint.setTextAlign(Paint.Align.CENTER);}@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);if(imagesCount > 9){canvas.drawColor(imageViewBg);//背景顏色Paint.FontMetricsInt fontMetrics = paint.getFontMetricsInt();float baseLine = getHeight() / 2 - (fontMetrics.bottom + fontMetrics.top) / 2;canvas.drawText(textDesc, getWidth() / 2, baseLine, paint);}}@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()){case MotionEvent.ACTION_DOWN:Drawable drawable = getDrawable();if(drawable != null){//drawable.mutate().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);drawable.setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);ViewCompat.postInvalidateOnAnimation(this);}break;case MotionEvent.ACTION_MOVE:break;case MotionEvent.ACTION_CANCEL:case MotionEvent.ACTION_UP:Drawable drawableUp = getDrawable();if(drawableUp != null){//drawableUp.mutate().clearColorFilter();drawableUp.clearColorFilter();ViewCompat.postInvalidateOnAnimation(this);}break;}return super.onTouchEvent(event);}@Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();//將drawable對(duì)象置空setImageDrawable(null);}public int getImagesCount() {return imagesCount;}public void setImagesCount(int imagesCount) {this.imagesCount = imagesCount;textDesc = "+"+(imagesCount - 9);invalidate();} }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101

    需要特別說明的一點(diǎn)是drawable.mutate().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);這個(gè)方法。根據(jù)jeasonlzy大神的解釋是,如果這樣寫的話在部分機(jī)型上會(huì)出問題,所以他給出了一個(gè)解決方案。由于現(xiàn)有測(cè)試機(jī)種類有限,目前還沒有出現(xiàn)他說的這種問題。不管了,先給出兩種實(shí)現(xiàn)方式。

    接下來(lái),再來(lái)看看我們的adapter是如何調(diào)用交互的

    /*** 展示數(shù)據(jù)的適配器 adapter*/public class RecyclerViewDatasAdapter extends RecyclerView.Adapter<RecyclerViewDatasAdapter.ImageViewHolder>{private Context context;private List<ImagesBean> lists;private LayoutInflater inflater;public RecyclerViewDatasAdapter(Context context, List<ImagesBean> lists) {this.context = context;this.lists = lists;inflater = LayoutInflater.from(context);}@Overridepublic ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {return new ImageViewHolder(inflater.inflate(R.layout.item_layout, parent, false));}@Overridepublic void onBindViewHolder(ImageViewHolder holder, int position) {holder.iv.setImageResource(R.mipmap.ic_launcher);holder.tvName.setText(lists.get(position).getName());holder.tvDesc.setText(lists.get(position).getDesc());holder.nineGridView.setData(lists.get(position).getImgsUrl());//將圖片集合傳到我們的自定義九宮格控件中}@Overridepublic int getItemCount() {return null != lists ? lists.size() : 0;}public class ImageViewHolder extends RecyclerView.ViewHolder{private ImageView iv;private TextView tvName;private TextView tvDesc;private NineGridView nineGridView;private NineGridViewAdapter nineGridViewAdapter = new NineGridViewAdapter() {@Overrideprotected void onDisplayImage(Context context, ImageView iv, String url) {//Glide.with(context).load(url).into(iv);Picasso.with(context).load(url).into(iv);}@Overrideprotected ImageView generateImageView(Context context) {return super.generateImageView(context);}@Overrideprotected void onItemImageClick(Context context, ImageView iv, int position, List<String> list) {Toast.makeText(context, "你點(diǎn)擊了 position = " + position, Toast.LENGTH_SHORT).show();//super.onItemImageClick(context, iv, position, list);}};public ImageViewHolder(View itemView) {super(itemView);iv = (ImageView) itemView.findViewById(R.id.iv);tvName = (TextView) itemView.findViewById(R.id.tv_name);tvDesc = (TextView) itemView.findViewById(R.id.tv_desc);nineGridView = (NineGridView) itemView.findViewById(R.id.nineGridView);nineGridView.setDataAdapter(nineGridViewAdapter);}} }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    這里需要特別說明一下,大家可以看到這里我采用的是Glide加載圖片,在測(cè)試中發(fā)現(xiàn)當(dāng)圖片大于九張時(shí)會(huì)出現(xiàn)圖片部分被放大(也就是所謂的變形),開始我以為是自定義控件哪寫的有問題,但是經(jīng)過反復(fù)測(cè)試,發(fā)現(xiàn)是Glide加載的問題。按照網(wǎng)上說的方式,比如關(guān)掉加載動(dòng)畫等,發(fā)現(xiàn)并不能解決。Glide的源碼著實(shí)太復(fù)雜,所以目前并不能很好的解決這個(gè)問題。以后有時(shí)間再繼續(xù)研究吧,目前我換用了其它的圖片加載框架就沒問題了。

    順便把我們的實(shí)體類也貼出來(lái)吧

    /*** 實(shí)體類*/public class ImagesBean implements Serializable{private static final long serialVersionUID = 370114387259948705L;private int imgs;private String name;private String desc;private ArrayList<String> imgsUrl;//圖片數(shù)組集合public ImagesBean(String name, String desc, ArrayList<String> imgsUrl) {this.name = name;this.desc = desc;this.imgsUrl = imgsUrl;}public int getImgs() {return imgs;}public void setImgs(int imgs) {this.imgs = imgs;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public ArrayList<String> getImgsUrl() {return imgsUrl;}public void setImgsUrl(ArrayList<String> imgsUrl) {this.imgsUrl = imgsUrl;}}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    最后是我們的MainActivity

    public class MainActivity extends AppCompatActivity {private RecyclerView recyclerView;private RecyclerViewDatasAdapter adapter;private List<ImagesBean> mDatas;private String[] imgsUrl = {"https://pic4.zhimg.com/02685b7a5f2d8cbf74e1fd1ae61d563b_xll.jpg","https://pic4.zhimg.com/fc04224598878080115ba387846eabc3_xll.jpg","https://pic3.zhimg.com/d1750bd47b514ad62af9497bbe5bb17e_xll.jpg","https://pic4.zhimg.com/da52c865cb6a472c3624a78490d9a3b7_xll.jpg","https://pic3.zhimg.com/0c149770fc2e16f4a89e6fc479272946_xll.jpg","https://pic1.zhimg.com/76903410e4831571e19a10f39717988c_xll.png","https://pic3.zhimg.com/33c6cf59163b3f17ca0c091a5c0d9272_xll.jpg","https://pic4.zhimg.com/02685b7a5f2d8cbf74e1fd1ae61d563b_xll.jpg","https://pic4.zhimg.com/fc04224598878080115ba387846eabc3_xll.jpg","https://pic3.zhimg.com/d1750bd47b514ad62af9497bbe5bb17e_xll.jpg","https://pic4.zhimg.com/da52c865cb6a472c3624a78490d9a3b7_xll.jpg","https://pic3.zhimg.com/0c149770fc2e16f4a89e6fc479272946_xll.jpg",};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);recyclerView = (RecyclerView) findViewById(R.id.recyclerview);recyclerView.setLayoutManager(new LinearLayoutManager(this));//測(cè)試數(shù)據(jù)mDatas = new ArrayList<>();for(int i=0; i < 12; i++){ArrayList<String> imgs = new ArrayList<>();imgs.addAll(Arrays.asList(imgsUrl).subList(0, i % 12 + 1));ImagesBean bean = new ImagesBean("我是bean", "測(cè)試九宮格圖片,只是測(cè)試demo,只是測(cè)試demo",imgs);mDatas.add(bean);}adapter = new RecyclerViewDatasAdapter(this, mDatas);recyclerView.setAdapter(adapter);} }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    最后,非常感謝laobie大牛,此項(xiàng)目就是參考他的項(xiàng)目。如果大家覺得還有什么問題的話,歡迎留言交流。

    總結(jié)

    以上是生活随笔為你收集整理的仿微信朋友圈【九宫格的实现】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    在线免费精品视频 | 视频国产一区二区三区 | 丁香五婷 | 人人爽人人看 | av 一区 二区 久久 | 国产精品久久久久久吹潮天美传媒 | 日韩免费精品 | 亚洲精品国偷拍自产在线观看蜜桃 | av在线精品| 黄色影院在线观看 | 国产成人精品久久久久蜜臀 | 亚洲国产精品资源 | 婷婷资源站 | 亚洲成人精品在线观看 | 国产在线视频一区二区 | 91视频在线免费看 | 欧美国产高清 | 中文字幕丝袜一区二区 | 天天草天天干天天 | 深夜福利视频一区二区 | 国产精品成人国产乱 | 国产精品人人做人人爽人人添 | 九九九视频在线 | 亚洲综合欧美精品电影 | 奇米导航| 97国产精品久久 | 国产免费视频一区二区裸体 | av电影不卡 | 亚洲免费公开视频 | 精品麻豆入口免费 | 亚洲精品国产精品国自产观看 | 91资源在线观看 | 午夜狠狠操 | 成人免费视频网站 | 天天舔夜夜操 | 欧美国产日韩一区二区三区 | 激情文学综合丁香 | 亚洲日韩欧美一区二区在线 | 日韩有码欧美 | 国产日产亚洲精华av | 亚洲春色奇米影视 | 伊人超碰在线 | 日本性视频 | 在线视频 影院 | 伊人天天综合 | 日韩特黄一级欧美毛片特黄 | 在线观看亚洲国产 | 久久精品91视频 | 亚洲国产69 | 五月天综合网站 | 黄色免费视频在线观看 | 欧美a级在线免费观看 | 国产亚洲欧美精品久久久久久 | 91av欧美| 成年人网站免费在线观看 | 91资源在线免费观看 | 久久电影网站中文字幕 | 日韩高清在线一区 | 久久久91精品国产 | 国产一区免费在线 | 日女人免费视频 | 国产一级三级 | 亚洲一区视频免费观看 | 欧美少妇的秘密 | 毛片视频网址 | 99福利片| 日韩欧美视频一区二区三区 | 日本久久久久久久久久 | 在线观看的黄色 | 349k.cc看片app| 狠狠色丁香婷婷综合 | 日韩xxx视频 | 欧美在线视频一区二区三区 | 探花在线观看 | 欧美综合在线视频 | 一级黄色大片 | 国产成人在线综合 | 久久国产精品99精国产 | 成在人线av | 香蕉视频4aa | 在线看成人片 | 99国产精品久久久久老师 | 国产日韩欧美在线一区 | 国产免费一区二区三区最新 | av在线直接看 | 国产精品福利久久久 | 免费美女久久99 | 在线免费黄色 | 久久夜色精品国产欧美一区麻豆 | 亚洲精品一区二区久 | 免费成人看片 | 亚洲国产视频a | 毛片美女网站 | 又爽又黄又无遮挡网站动态图 | 久热免费在线观看 | 国产高清日韩 | 最近中文字幕免费av | 狠狠色网 | 国产精品 中文字幕 亚洲 欧美 | 国产视频在线观看一区二区 | 精品毛片在线 | 91香蕉视频好色先生 | 亚洲砖区区免费 | 日本色小说视频 | 国产精品大片 | 国产福利a| 热久久影视 | 999久久久免费视频 午夜国产在线观看 | 久草在线综合网 | 一级黄色在线免费观看 | 日韩色中色 | 天天操天天摸天天干 | 亚洲天天干 | 婷婷色 亚洲 | 亚洲视频在线免费看 | 日本精品视频在线观看 | 国产一区二区久久精品 | 日韩av免费网站 | 日日操日日插 | 中文字幕 在线 一 二 | 在线观看中文字幕一区 | 国产精品久久久久久久久久 | 四虎成人精品永久免费av | 人成免费网站 | 久久九九视频 | 国产永久网站 | 国产女人18毛片水真多18精品 | 999久久久久久久久6666 | 精品中文字幕在线播放 | 久久精品国产免费看久久精品 | 一色av| 欧美黄色特级片 | 91成人午夜 | 国产高清精品在线 | 91久久黄色| 麻豆 91 在线 | 成人国产精品免费观看 | 亚洲精品视频在线看 | 五月婷婷六月丁香 | 国产精品视频免费看 | 免费黄色网址网站 | 黄色毛片在线 | 天天射综合 | 永久免费的av电影 | va视频在线 | 狠狠干中文字幕 | 综合色爱 | 在线免费观看的av网站 | 黄色av电影网 | 黄色资源在线观看 | 国产中文字幕视频在线观看 | 日本性久久 | 免费欧美高清视频 | a级国产乱理论片在线观看 特级毛片在线观看 | 日韩av不卡在线 | jizz18欧美18 | 一区二区电影在线观看 | 国产女人18毛片水真多18精品 | 五月婷婷中文字幕 | 亚洲精品欧洲精品 | 欧美精品一区在线 | 九九交易行官网 | 日本在线观看中文字幕无线观看 | 国产成人av一区二区三区在线观看 | 国产网红在线观看 | 99视频+国产日韩欧美 | 日本大尺码专区mv | 91av视频免费在线观看 | av在线最新 | 一区二区精品在线 | 成人av直播 | 成人资源在线 | 麻豆成人精品视频 | 国产夫妻av在线 | 国产午夜精品理论片在线 | 天天射,天天干 | 日韩精品一区二区三区在线视频 | 麻豆视频一区二区 | 国产一区二区久久久久 | 99精品在线免费视频 | 97天天综合网 | 久久久一本精品99久久精品 | 国产精品1区2区 | 青青河边草手机免费 | 中文字幕一区二 | 婷婷视频在线 | 中文字幕影片免费在线观看 | 久久免费电影网 | 九九九九九国产 | 亚洲无吗天堂 | 国产精品久久久久久久毛片 | 亚洲综合网站在线观看 | 欧美在线aaa | 久久艹久久 | 日韩有码中文字幕在线 | www色av| 欧美在线不卡一区 | 96久久精品 | 亚洲欧美国产日韩在线观看 | 免费福利在线 | 精品国产一区二区三区久久影院 | 国产在线视频一区 | 天天操人人要 | 天天综合天天做天天综合 | 国产精品久久久久久久久久三级 | www.午夜色.com | 国产日韩视频在线观看 | 久久久久久久久久久成人 | 欧美日韩在线电影 | 三级免费黄色 | 免费高清在线观看成人 | 亚洲va欧美va | 在线 国产 日韩 | av福利在线看 | 伊人五月天| 夜夜澡人模人人添人人看 | 91精品国产成人观看 | 91c网站色版视频 | 精品二区视频 | 亚洲视频六区 | 天天干.com | 日韩av手机在线看 | 99r在线观看 | 极品嫩模被强到高潮呻吟91 | 人人爽人人搞 | 8x成人在线 | 色综合天 | 国产精品综合av一区二区国产馆 | 天天天色综合a | 日本久久久久久久久久 | 五月丁色| 97精品国产91久久久久久久 | 亚洲精品久久久久www | 五月婷婷激情综合网 | 最新黄色av网址 | 日韩在线观看视频网站 | 欧美日韩亚洲精品在线 | 在线观看视频 | 久久精品香蕉视频 | 国产福利网站 | 韩国av不卡| 视频在线播放国产 | 免费成人黄色av | 福利视频网址 | 最近中文字幕mv免费高清在线 | 91cn国产在线 | 黄色电影网站在线观看 | 免费在线电影网址大全 | 国产亚洲精品久久久久久大师 | 免费视频你懂得 | 波多野结衣视频一区 | 成人a免费 | 久久免费电影 | 国产精品乱码在线 | 九九免费视频 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 涩涩伊人 | 高清视频一区二区三区 | 五月天色丁香 | 91精品免费在线 | 午夜视频一区二区三区 | 96国产在线 | 伊人天堂久久 | 成人h视频在线 | 成人国产精品电影 | 中文字幕免费高清在线观看 | 亚洲乱亚洲乱亚洲 | 日韩欧美一区二区三区视频 | 在线观看日本高清mv视频 | 亚洲激情综合网 | 日韩a级黄色片 | 夜夜操天天干 | 日本精品视频在线播放 | 久久精品国产免费观看 | 中文字幕在线观看视频免费 | 中文字幕二区在线观看 | 中文字幕精品一区二区三区电影 | 最近字幕在线观看第一季 | 99色在线视频 | 成人黄色在线观看视频 | 婷婷 综合 色 | 毛片在线网 | 99视频这里有精品 | 国内精自线一二区永久 | 日韩欧美高清 | 久久久久中文字幕 | 国产精品嫩草55av | 亚洲欧美观看 | av电影在线播放 | 欧美精品九九99久久 | 久草国产在线观看 | wwwav视频| 97精品久久人人爽人人爽 | 日韩高清dvd | 亚洲男男gaygayxxxgv | 久久久久免费精品 | 永久免费av在线播放 | 日日干日日 | 亚洲综合色av | 成人国产精品免费观看 | 欧美精品资源 | 国产精品密入口果冻 | 久久久精品 一区二区三区 国产99视频在线观看 | 欧美日韩视频在线一区 | 99久久99 | 欧美精品乱码久久久久久 | av免费在线播放 | 天天干国产 | 91麻豆网站 | 人人插人人爱 | 日韩成人邪恶影片 | 91福利在线导航 | 超碰成人网 | 色永久免费视频 | 91九色蝌蚪国产 | av资源网在线播放 | 国产视频不卡 | 精品国产免费观看 | 999成人 | 狠狠操天天射 | 懂色av一区二区三区蜜臀 | 国产精品理论片 | 一区免费在线 | 99久久影院 | 在线日韩视频 | 亚洲免费公开视频 | h网站免费在线观看 | 国产免费观看久久黄 | 天天干夜夜擦 | 婷婷婷国产在线视频 | 中文字幕在线一区二区三区 | 91精品国产92久久久久 | 免费观看黄色av | 天天射天天干天天插 | 中文 一区二区 | 又色又爽又激情的59视频 | 奇米先锋| 99视频一区二区 | 丰满少妇久久久 | 天天操天天操天天操天天操 | 日韩在线影视 | 亚洲天天干 | 亚洲乱亚洲乱妇 | 狠狠干狠狠久久 | 日韩在线第一区 | 日韩久久在线 | 视频91在线 | 一级一级一片免费 | 欧美日高清视频 | 日韩欧美极品 | 激情丁香 | 4438全国亚洲精品在线观看视频 | 国产伦精品一区二区三区免费 | 亚洲精品国产拍在线 | 人人讲| 亚洲成年人在线播放 | 日本激情视频中文字幕 | 亚洲视频h | 成人一级片视频 | 九九视频在线播放 | 91桃色在线播放 | 91精品久久久久久综合乱菊 | 99视频这里有精品 | 狠狠躁日日躁夜夜躁av | 中文字幕精品在线 | 免费av在线网站 | 麻豆国产网站 | 成人一区二区在线观看 | 中文字幕首页 | 亚洲黄色网络 | 国内偷拍精品视频 | 色干干 | 国产一区二区三区久久久 | 九九热只有精品 | 国产精品女人久久久 | 伊人五月天.com| 国产亚洲精品久久久久秋 | 福利网址在线观看 | 黄网站色视频免费观看 | 麻豆91精品91久久久 | 欧美日韩中文国产一区发布 | 97网在线观看 | 亚色视频在线观看 | 久久色中文字幕 | 中日韩欧美精彩视频 | www.eeuss影院av撸 | 国产一级不卡视频 | 亚洲丁香日韩 | 制服丝袜在线 | 99久久影视 | 日韩精品在线免费观看 | 99久久精品国产欧美主题曲 | 91精品国自产拍天天拍 | 天天射,天天干 | 免费在线播放 | 欧美婷婷色 | 精品综合久久久 | 成人手机在线视频 | 精品亚洲午夜久久久久91 | 中文字幕一区二区三 | 99自拍视频在线观看 | 中文字幕一区二区三区精华液 | 97视频免费| 中文字幕 国产视频 | 亚洲日本va在线观看 | 日韩网站中文字幕 | 在线日韩亚洲 | 久久五月婷婷丁香 | 黄色av一级 | 日本在线观看黄色 | 日韩视频一区二区在线观看 | 美州a亚洲一视本频v色道 | 亚洲婷婷伊人 | 久久久久久久综合色一本 | 91福利视频免费观看 | 国产麻豆精品在线观看 | 超碰97公开 | 国产无遮挡又黄又爽馒头漫画 | 草久在线视频 | 国产91对白在线播 | 在线视频免费观看 | 成人蜜桃视频 | 久久久久久精 | 黄色三级视频片 | 午夜精品一区二区国产 | 在线观看视频 | 天天综合中文 | 蜜臀av夜夜澡人人爽人人桃色 | 成人h在线| 四虎影视成人永久免费观看视频 | 九九激情视频 | 日韩免费观看一区二区 | 亚洲三区在线 | 美腿丝袜一区二区三区 | av亚洲产国偷v产偷v自拍小说 | 黄色日本免费 | 欧美精品中文在线免费观看 | 波多野结衣在线视频免费观看 | 国产精品欧美久久久久久 | 国产一级精品绿帽视频 | 久久国产视频网站 | 在线观影网站 | 欧美精品乱码99久久影院 | 99久免费精品视频在线观看 | 激情丁香在线 | 天天天天爱天天躁 | 日韩一区二区免费在线观看 | 亚洲黄色三级 | 五月丁婷婷 | 国产精品午夜免费福利视频 | 久久久久久久久久久免费视频 | 青春草视频在线播放 | 欧美激情va永久在线播放 | 日韩精品一区二区三区在线播放 | 亚洲国产高清在线 | 国产成人一二片 | av+在线播放在线播放 | 中国一级片在线播放 | 国产精品久久99综合免费观看尤物 | 成人福利av | 中文字幕在线观看视频一区二区三区 | 热久久视久久精品18亚洲精品 | 日韩黄色在线电影 | 91大片网站 | 91综合视频在线观看 | 欧美日韩一区三区 | 久久精品视频99 | 啪啪免费试看 | 久草网视频 | 成 人 a v天堂 | 亚洲视频精品 | 麻豆影视网| 91中文视频| 国产剧情久久 | 日韩久久久 | 在线黄色av| 中文字幕免费播放 | 最新中文字幕视频 | 午夜黄色大片 | 国产精品九九九九九九 | 国产第一页在线播放 | 九九综合在线 | 97成人资源 | 久久国产精品久久久 | 成人羞羞视频在线观看免费 | 亚洲六月丁香色婷婷综合久久 | 亚洲电影免费 | 黄色福利网 | 久久99精品久久久久蜜臀 | 亚洲天天摸日日摸天天欢 | 国产在线更新 | 午夜手机电影 | 久久久久久免费网 | 91人人插 | 在线观看免费视频 | 国产婷婷视频在线 | 国产小视频福利在线 | 欧美日韩在线播放 | 国产一区二区三区网站 | 久久香蕉电影网 | 国产69精品久久久久9999apgf | 亚洲精品 在线视频 | 亚洲国产小视频在线观看 | 9在线观看免费高清完整版在线观看明 | 国产 字幕 制服 中文 在线 | 综合色播| 中文字幕日韩免费视频 | 91自拍视频在线观看 | av在线直接看 | 中文字幕观看视频 | 亚洲第一区在线播放 | 五月天色婷婷丁香 | 黄色软件在线观看免费 | 久久精品久久精品久久39 | 国产香蕉久久精品综合网 | 伊人成人久久 | 九九交易行官网 | 一区二区激情视频 | 久久高视频 | 中文字幕在线观看视频一区二区三区 | 成人国产一区 | 国产伦精品一区二区三区四区视频 | 欧美大片aaa | 水蜜桃亚洲一二三四在线 | 国产精品99久久久久久小说 | 精品久久影院 | 99久久国产免费看 | 久久黄色免费 | 国产精品成人久久久久久久 | 超碰在线1 | 久久综合九色综合欧美就去吻 | 正在播放日韩 | 丰满少妇在线观看网站 | 91在线视频免费 | www.一区二区三区 | 亚洲一区二区三区miaa149 | 久久爱影视i | 黄网站免费大全入口 | 亚洲更新最快 | 亚洲另类人人澡 | 97视频免费在线看 | 久久免费视频一区 | 精品亚洲一区二区三区 | 96看片 | av888.com| 国产精品福利无圣光在线一区 | 天堂在线视频中文网 | 国产四虎在线 | 久艹视频在线观看 | 精品三级av | 成人黄色小说网 | 久久精品激情 | 日韩一区二区三区不卡 | 国产美腿白丝袜足在线av | 91高清视频 | 国产免费又爽又刺激在线观看 | 国产精品久久久久久久毛片 | 91视频在线免费观看 | 99视频+国产日韩欧美 | 久草综合视频 | 五月婷婷毛片 | 99精品在线视频播放 | 精品国产一区二区三区久久久蜜臀 | 麻豆 91 在线 | 夜夜澡人模人人添人人看 | 成人一级片视频 | 欧美另类高清 | 激情小说网站亚洲综合网 | 欧美在线观看小视频 | 午夜精品电影一区二区在线 | 欧美色图亚洲图片 | 91日韩免费 | 成人精品电影 | 久久久久久久久久久久久久电影 | 91精品黄色| 日本在线观看黄色 | 天天色 天天 | 成人在线视频免费看 | 欧美 激情 国产 91 在线 | 黄色一级在线观看 | 国产精品视频观看 | 天天干,天天草 | 免费av在 | 亚洲精品国产精品乱码不99热 | 91精品国产网站 | 久久久精品国产一区二区三区 | 国产精品视频免费观看 | 亚洲天堂va| 国产资源免费在线观看 | 色91av| 国产精品九九久久久久久久 | 免费在线观看av片 | 国产成人精品一区二 | 天堂在线免费视频 | 不卡中文字幕在线 | 亚洲国产视频直播 | 亚洲精品永久免费视频 | 国产精品一区二区免费在线观看 | 国产黄色片一级 | 国产精品自产拍在线观看网站 | 四虎在线观看视频 | 国产伦精品一区二区三区免费 | 久久视频这里有久久精品视频11 | 中文不卡视频在线 | 日免费视频 | 精品v亚洲v欧美v高清v | 91精品一 | 欧美在线一 | 91九色蝌蚪国产 | 精品国产精品一区二区夜夜嗨 | 久草在线在线视频 | 99精品国产99久久久久久福利 | 私人av| 九九免费精品视频在线观看 | 精品高清美女精品国产区 | 日韩精品视频在线观看网址 | 99久久精品免费看国产免费软件 | 免费在线视频一区二区 | 久久综合网色—综合色88 | 在线观看黄色大片 | 亚洲精品国精品久久99热 | 在线视频福利 | 一区二区三区精品久久久 | 在线国产能看的 | 色综合久久久久综合体桃花网 | 久精品在线观看 | 精品国产成人av在线免 | av在线免费观看网站 | 久久色在线观看 | 免费看污在线观看 | 久久99热精品这里久久精品 | 亚洲综合色丁香婷婷六月图片 | 久久久久久久网 | 9999精品免费视频 | 久久99精品波多结衣一区 | 久久美女免费视频 | 日韩区欠美精品av视频 | 日韩 在线a| 天天操狠狠操 | 色吧av色av | 天天插天天爱 | 五月激情站 | 美女一级毛片视频 | 99九九热只有国产精品 | 黄色av观看 | 在线观看网站黄 | 日韩高清国产精品 | av电影免费在线 | 国产 欧美 日本 | 日日干干 | 久久精品视频国产 | 在线亚洲欧美视频 | 久久新| 国产精品久久久久久久久久久久久久 | 四虎在线观看 | 99精品热视频| 麻豆视频免费观看 | 国产经典三级 | 欧美国产在线看 | 免费高清影视 | 日韩欧美在线高清 | 国产麻豆精品在线观看 | 久久亚洲区 | 香蕉视频网站在线观看 | 亚洲在线网址 | 久久av影视 | 日日爱视频 | 在线观看福利网站 | 91麻豆精品国产自产在线游戏 | 一区二区精品在线 | 国产又黄又硬又爽 | 91亚洲精品久久久蜜桃网站 | 国产九九九九九 | 成人免费观看在线视频 | 国产成人性色生活片 | 久久久久久久影视 | 亚洲精品久久久久久国 | 久久久 精品| 久草| 日韩免费中文 | 99爱在线观看 | 国内精品久久久久国产 | 亚洲欧美综合精品久久成人 | 久久草精品 | 在线观看中文字幕第一页 | 亚洲视频www | 美女免费网站 | 国产精品一区二区吃奶在线观看 | 欧美 日韩 国产 中文字幕 | 久久激情五月婷婷 | 久艹视频在线免费观看 | 91在线影视 | 蜜臀av一区二区 | 888av| 91麻豆传媒 | 日日操操 | 国产又粗又猛又爽又黄的视频先 | 欧美精品v国产精品v日韩精品 | 中文字幕一二三区 | 一区二区三区在线观看 | 91国内在线| 亚av在线 | 久久er99热精品一区二区三区 | wwwwww国产 | 国产亚洲成人网 | av免费看av | 香蕉日日 | 中文国产字幕在线观看 | 欧美性极品xxxx做受 | 国产专区欧美专区 | 免费a v视频 | 狠狠干夜夜爱 | 国产一区二区三区在线 | 少妇bbw搡bbbb搡bbb | 免费在线电影网址大全 | 久热免费在线 | 99欧美精品 | 国产视频每日更新 | www.久久色| 成人久久亚洲 | 亚洲精品乱码久久久久久蜜桃欧美 | 中日韩免费视频 | 久久久国产精品电影 | 91免费版成人 | 91网站观看| 日韩免费视频在线观看 | 东方av在线免费观看 | 日韩视频专区 | 天天搞天天干 | av不卡免费在线观看 | 国产婷婷久久 | 亚洲精品午夜一区人人爽 | 欧美亚洲成人免费 | 精品国产一区二区三区久久久蜜月 | 国产永久网站 | 丁香久久久 | 美女国产 | 免费在线国产视频 | 亚洲久草在线 | 国产精品久久久久久久久久尿 | 欧美成人xxxxxxxx | 91精品成人 | 亚洲一区尤物 | 美女网站在线观看 | 九七视频在线 | 香蕉久草 | 亚洲国产日韩在线 | 在线观看免费av网站 | 成人中文字幕+乱码+中文字幕 | 天天干天天干天天干天天干天天干天天干 | 91福利区一区二区三区 | 欧美一级免费在线 | 91少妇精拍在线播放 | 欧美亚洲另类在线视频 | 五月婷婷综合网 | 亚洲天堂免费视频 | 久久99深爱久久99精品 | 日韩精品久久久久久 | 99久久久久免费精品国产 | 日韩高清成人在线 | 欧美一区二区视频97 | 91亚洲狠狠婷婷综合久久久 | 国产精品a久久 | 中国一级片在线观看 | 亚洲成人av一区 | 国产爽视频 | 一区二区av | japanesexxx乱女另类 | 国产一区二区高清不卡 | 九九热免费视频在线观看 | 国产精品99久久久久久有的能看 | 91色蜜桃 | 久久伊人综合 | 成人av动漫在线观看 | 777xxx欧美 | 偷拍精偷拍精品欧洲亚洲网站 | 日韩精品一区不卡 | 色资源网在线观看 | 午夜精品久久久久久久99水蜜桃 | 1区2区3区在线观看 三级动图 | 色综合久久久久综合99 | 色欲综合视频天天天 | 99r在线播放 | 天天爱综合 | 色a综合| 波多野结衣电影久久 | 天天操夜夜操夜夜操 | 91麻豆精品一区二区三区 | 丝袜美腿一区 | 亚洲电影久久久 | 99精品区 | 婷婷中文在线 | 精品久久久久久综合 | 成年人国产视频 | 色诱亚洲精品久久久久久 | 91亚洲精品乱码久久久久久蜜桃 | 久久久午夜精品福利内容 | 日韩影视在线观看 | se视频网址 | 亚洲一区美女视频在线观看免费 | 午夜精品视频福利 | 国产亚洲视频在线免费观看 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | av网站免费线看精品 | 亚洲精品视频在线观看网站 | 97超碰中文字幕 | 成人av观看 | 在线看片中文字幕 | 高清国产在线一区 | 久久精品99久久 | 国产天天综合 | 狠狠色狠狠色合久久伊人 | 美女福利视频一区二区 | 天天操夜夜操夜夜操 | 亚洲色综合 | 欧美日韩国产一区 | 日韩欧美网址 | 久久精品超碰 | 伊人天堂网 | 91麻豆免费看| 亚洲综合网站在线观看 | 激情五月婷婷综合网 | 在线播放国产一区二区三区 | 人人爱人人爽 | 成年美女黄网站色大片免费看 | 国产尤物在线 | 国产一二三区在线观看 | 成人a免费看 | 国产五月色婷婷六月丁香视频 | 天天爽天天碰狠狠添 | 丁香婷婷综合激情 | 免费视频资源 | 在线观看免费版高清版 | 97爱爱爱 | 99爱精品视频 | 麻豆视频国产 | 性色av免费观看 | 最近中文国产在线视频 | 日韩在线小视频 | 亚洲九九影院 | 免费看一及片 | 美女网站黄在线观看 | 丁香在线观看完整电影视频 | 日韩a欧美 | 午夜精品久久久久久99热明星 | 五月天激情综合 | 亚洲精品小视频 | 亚洲免费一级 | 国产视频一二区 | 国产欧美精品一区二区三区 | 激情视频亚洲 | 精品欧美日韩 | 欧美性超爽 | 一区二区三区精品久久久 | 精品毛片一区二区免费看 | 国产高清av在线播放 | 在线观看mv的中文字幕网站 | 国产区在线 | 丁香花在线视频观看免费 | 高清视频一区二区三区 | 中文字幕精品一区二区三区电影 | 51久久成人国产精品麻豆 | 欧美激情xxxx| 国产成人精品一区二三区 | 国产精品第7页 | 黄色1级大片 | 日本不卡123区 | 人人草天天草 | 一级淫片在线观看 | 欧美人交a欧美精品 | 成人亚洲网 | 免费成人在线电影 | 成人午夜性影院 | 高清国产在线一区 | 久久综合狠狠狠色97 | 午夜精品久久久久久久99水蜜桃 | 狠狠色丁香久久婷婷综 | 97色资源 | 色综合久久中文综合久久牛 | 91香蕉视频色版 | 日韩精品在线视频 | 国内一区二区视频 | 亚洲国产日韩精品 | 在线视频麻豆 | 91看片在线免费观看 | 中文字幕免费观看视频 | 亚洲va欧美va | 精品国产视频一区 | 四虎国产精品永久在线国在线 | 91一区啪爱嗯打偷拍欧美 | 精品999| 91av在| 免费国产视频 | 99热最新在线 | 色婷婷骚婷婷 | av一级片 | 99精品视频免费看 | 国产日韩在线看 | 日韩在线观看你懂的 | 久久精品一区二 | 欧美嫩草影院 | 欧洲视频一区 | 亚洲天堂网在线观看视频 | 精品国模一区二区 | 亚洲成色777777在线观看影院 | 精品国产综合区久久久久久 | 成人久久综合 | 精品日韩在线一区 | 免费色视频在线 | 久草久草在线观看 | 色精品视频 | 久久精品视频2 | 欧美 亚洲 另类 激情 另类 | 欧美韩国日本在线观看 | 香蕉视频在线播放 | 欧美性久久久久久 | 91手机在线看片 | 久久av在线 | 狠狠色丁香久久婷婷综合丁香 | 亚洲dvd | 韩日视频在线 | 热久久99这里有精品 | 日韩网页| 亚洲区另类春色综合小说校园片 | 久草在线视频网 | www色av| 精品久久久免费 | 九九九热精品免费视频观看 | 午夜精品一区二区三区视频免费看 | 日韩色综合网 | 成人午夜毛片 | 亚洲精品在线免费播放 | 91亚洲精品久久久蜜桃借种 | 天天躁日日躁狠狠躁av麻豆 | 日日操狠狠干 | 亚洲综合爱 | 久草视频资源 | 亚洲国产日韩一区 | 精品国产美女在线 | 欧美整片sss | 久久久久久久久爱 | 成人动态视频 | 久久蜜臀一区二区三区av | 中日韩免费视频 | 欧美国产日韩一区二区 | 天堂av高清 | 国产精品欧美久久久久无广告 | 婷婷天天色 | 国产精品久久久久免费观看 | 午夜手机电影 | 亚洲精品伦理在线 | 人人澡人人模 | 成人黄色小说视频 | 国产精品女视频 | 综合网天天 | 国产区av在线 | 美女免费电影 | 91重口视频 | 免费一级黄色 | 91在线视频免费观看 | 精品欧美在线视频 | 久久草在线视频国产 | 亚洲九九九在线观看 | 婷婷色综合网 | av中文字幕在线播放 | 国产一区欧美一区 | 在线观看免费黄色 | 色综合中文字幕 | 国产精品久久久久婷婷二区次 | 国产婷婷精品av在线 | 欧美一区二区在线 | 天天操夜 | 日本久久久影视 | 国产天天综合 | 国模一二三区 | 亚洲aⅴ久久精品 | 亚洲伊人婷婷 | 97成人精品视频在线观看 | 精品夜夜嗨av一区二区三区 | 国产成人精品一区二区三区福利 | 国产成人香蕉 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品精品国产 | 99热国内精品 | 久久伊人国产精品 | 亚洲电影av在线 | 国内偷拍精品视频 | 亚洲视频精品在线 | 在线免费观看亚洲视频 | 丁香六月综合网 | 成人看片| 国产人成在线观看 | 蜜臀久久99精品久久久无需会员 | 日本中文一区二区 | 日本久久久久 | 免费看v片网站 | 国产欧美精品在线观看 | 中文字幕资源在线观看 |