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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 换行模式,Android进阶之自定义View(1)实现可换行的TextView

發布時間:2024/7/23 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 换行模式,Android进阶之自定义View(1)实现可换行的TextView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天來一起學習一下最簡單的自定義view,自己動手寫一個MyTextView,當然不會像系統的TextView那么復雜,只是實現一下TextView的簡單功能,包括分行顯示及自定義屬性的處理,主要目的是介紹自定義view的實現的基本思路和需要掌握的一些基礎知識。

《一》先展示一下實現的最終效果

image.png

《二》實現步驟分析

1、創建MyTextView extends View,重寫構造方法。一般是重寫前三個構造方法,讓前兩個構造方法最終調用三個參數的構造方法,然后在第三個構造方法中進行一些初始化操作。

2、在構造方法中進行一些初始化操作,如初始化畫筆及獲取自定義屬性等。

如何自定義屬性?

(1)在values下創建attrs.xml.

//定義你的view可以在布局文件中配置的自定義屬性

(2)獲取自定義屬性

TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyTextViewApprence, defStyleAttr, 0);

mText = typedArray.getString(R.styleable.MyTextViewApprence_text);

mTextColor = typedArray.getColor(R.styleable.MyTextViewApprence_textColor, Color.BLACK);

mTextSize = (int) typedArray.getDimension(R.styleable.MyTextViewApprence_textSize, 15);

showMode = typedArray.getInt(R.styleable.MyTextViewApprence_showMode, 0);

typedArray.recycle();

3、重寫OnDraw()方法,在onDraw()中使用canvas繪制文字,x,y為繪制的起點。

需要注意兩點:

(1)這里的x,y不是指的左上頂點,而是左下頂點。

(2)drawText繪制文字時,是有規則的,這個規則就是基線!詳細可閱讀drawText()詳解

image.png

//繪制每行文字的建議高度為:

Paint.FontMetrics fm = mPaint.getFontMetrics();

drawTextHeight = (int) (fm.descent - fm.ascent);

繪制文字的方法:

canvas.drawText(@NonNull String text, float x, float y, @NonNull Paint paint)

4、到第三步,其實就可以繪制出文字了,但是會發現一個問題,無論在布局文件中聲明控件的寬高是wrap_content和match_parent,效果都是鋪滿了整個屏幕,這個時候,我們就需要重寫onMesure()方法來測量控件的實際大小了,分析View的源碼:

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),

getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec));

}

public static int getDefaultSize(int size, int measureSpec) {

int result = size;

int specMode = MeasureSpec.getMode(measureSpec);

int specSize = MeasureSpec.getSize(measureSpec);

switch (specMode) {

case MeasureSpec.UNSPECIFIED:

result = size;

break;

case MeasureSpec.AT_MOST:

case MeasureSpec.EXACTLY:

result = specSize;

break;

}

return result;

}

/**MeasureSpec 封裝了父控件對其孩子的布局要求

有大小和模式兩種,而模式則有三種模式

public static class MeasureSpec {

private static final int MODE_SHIFT = 30;

private static final int MODE_MASK = 0x3 << MODE_SHIFT;

//父控件不強加任何約束給子控件,它可以為它逍遙的任何大小

public static final int UNSPECIFIED = 0 << MODE_SHIFT; //0

//父控件給子控件一個精確的值

public static final int EXACTLY = 1 << MODE_SHIFT; //1073741824

//父控件給子控件竟可能最大的值

public static final int AT_MOST = 2 << MODE_SHIFT; //-2147483648

//設定尺寸和模式創建的統一約束規范

public static int makeMeasureSpec(int size, int mode) {

if (sUseBrokenMakeMeasureSpec) {

return size + mode;

} else {

return (size & ~MODE_MASK) | (mode & MODE_MASK);

}

}

// 從規范中獲取模式

public static int getMode(int measureSpec) {

return (measureSpec & MODE_MASK);

}

//從規范中獲取尺寸

public static int getSize(int measureSpec) {

return (measureSpec & ~MODE_MASK);

}

}

關于specMode測量的幾種模式,你需要知道它們的作用,如下圖。

image.png

可以看到我們的源碼中調用是自身的getDefaultSize()方法,然后在MeasureSpec.AT_MOST和MeasureSpec.EXACTLY全部返回的是specSize,而specSize表示的是父控件剩余寬度,也就是我們看到的全屏。所以默認onMeasure方法中wrap_content 和match_parent 的效果是一樣的,都是填充剩余的空間。

所以我們重新onMesure()方法,對wrap_content這種情況進行處理。

@Override

protected 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 = MeasureSpec.getSize(heightMeasureSpec);

Log.e("TAG", "widthMode=" + widthMode + " heightMode=" + heightMode + " widthSize=" + widthSize + " heightSize=" + heightSize);

//對wrap_content這種模式進行處理

int width;

int height;

if (widthMode == MeasureSpec.EXACTLY) {

width = widthSize;

} else {

//如果是wrap_content,我們需要得到控件需要多大的尺寸

//首先丈量文本的寬度

float textWidth;

textWidth = mTextBoundOther.width();

//控件的寬度就是文本的寬度加上兩邊的內邊距。內邊距就是padding的值,在構造方法執行完被賦值

width = (int) (getPaddingLeft() + textWidth + getPaddingRight());

}

if (heightMode == MeasureSpec.EXACTLY) {

height = heightSize;

} else {

//如果是wrap_content,我們需要得到控件需要多大的尺寸

//首先丈量文本的寬度

float textHeight = mTextBoundOther.height();

//控件的寬度就是文本的寬度加上兩邊的內邊距。內邊距就是padding的值,在構造方法執行完被賦值。遺留問題:最后一行顯示高度不夠,在這里加上10px處理

height = (int) (getPaddingTop() + textHeight + getPaddingBottom() + 10);

}

//保存丈量結果

setMeasuredDimension(width, height);

}

下面是實現了自動換行的TextView的完整代碼:

package com.example.jojo.learn.customview;

import android.content.Context;

import android.content.res.TypedArray;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Rect;

import android.support.annotation.Nullable;

import android.text.TextUtils;

import android.util.AttributeSet;

import android.util.DisplayMetrics;

import android.util.Log;

import android.view.View;

import com.example.jojo.learn.R;

import java.util.ArrayList;

/**

* Created by JoJo on 2018/7/27.

* wechat:18510829974

* description:自定義Textview

*/

public class MyTextView extends View {

//文字內容

private String mText;

//文字大小

private int mTextSize;

//文字顏色

private int mTextColor;

//繪制的范圍

private Rect mTextBound;

//繪制文字的畫筆

private Paint mPaint;

private int mScreenWidth;

private int mScreenHeight;

private int baseLineY;

private float ascent;

private float descent;

private float top;

private float bottom;

private int baseLineX;

private Rect mMaxRect;

private Rect mTextBoundOther;

private String text = "This is a great day";

private int drawTextHeight;

public MyTextView(Context context) {

this(context, null);

}

public MyTextView(Context context, @Nullable AttributeSet attrs) {

this(context, attrs, 0);

}

public MyTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyTextViewApprence, defStyleAttr, 0);

mText = typedArray.getString(R.styleable.MyTextViewApprence_text);

mTextColor = typedArray.getColor(R.styleable.MyTextViewApprence_textColor, Color.BLACK);

mTextSize = (int) typedArray.getDimension(R.styleable.MyTextViewApprence_textSize, 15);

showMode = typedArray.getInt(R.styleable.MyTextViewApprence_showMode, 0);

typedArray.recycle();

//屏幕信息

DisplayMetrics dm = getResources().getDisplayMetrics();

mScreenHeight = dm.heightPixels;

mScreenWidth = dm.widthPixels;

if (TextUtils.isEmpty(mText)) {

mText = "Hello.....Hello.....Hello.....Hello.....Hello.....Hello.....Hello.....Hello.....Hello.....Hello.....Hello....";

}

init();

}

private void init() {

//基線

baseLineY = mTextSize;

baseLineX = 0;

//初始化畫筆

mPaint = new Paint();

mPaint.setColor(mTextColor);

mPaint.setTextSize(mTextSize);

mPaint.setAntiAlias(true);

mPaint.setStrokeWidth(1);

//獲取繪制的寬高

mTextBound = new Rect();

mPaint.getTextBounds(text, 0, text.length(), mTextBound);

mTextBound.top = baseLineY + mTextBound.top;

mTextBound.bottom = baseLineY + mTextBound.bottom;

mTextBound.left = baseLineX + mTextBound.left;

mTextBound.right = baseLineX + mTextBound.right;

//獲取文字所占區域最小矩形

Log.e("TAG", mTextBound.toShortString());

//換行的文字

mTextBoundOther = new Rect();

mPaint.getTextBounds(mText, 0, mText.length(), mTextBoundOther);

//計算各線在位置

Paint.FontMetrics fm = mPaint.getFontMetrics();

ascent = baseLineY + fm.ascent;//當前繪制頂線

descent = baseLineY + fm.descent;//當前繪制底線

top = baseLineY + fm.top;//可繪制最頂線

bottom = baseLineY + fm.bottom;//可繪制最低線

//每行文字的繪制高度

drawTextHeight = (int) (fm.descent - fm.ascent);

//字符串所占的高度和寬度

int width = (int) mPaint.measureText(mText);

int height = (int) (bottom - top);

//文字繪制時可以占據的最大矩形區域

mMaxRect = new Rect(baseLineX, (int) (baseLineY + fm.top), (baseLineX + width), (int) (baseLineY + fm.bottom));

}

private ArrayList mTextList = new ArrayList<>();

private float lineNum;//文字最終所占的行數

private float spLineNum;

//換行展示的對齊方式

private int showMode;

/**

* 測量

* 父控件不強加任何約束給子控件,它可以為它逍遙的任何大小

* public static final int UNSPECIFIED = 0 << MODE_SHIFT; //0

* 父控件給子控件一個精確的值-match_parent

* public static final int EXACTLY = 1 << MODE_SHIFT; //1073741824

* 父控件給子控件竟可能最大的值-wrap_content

* public static final int AT_MOST = 2 << MODE_SHIFT; //-2147483648

*

* @param widthMeasureSpec

* @param heightMeasureSpec

*/

@Override

protected 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 = MeasureSpec.getSize(heightMeasureSpec);

Log.e("TAG", "widthMode=" + widthMode + " heightMode=" + heightMode + " widthSize=" + widthSize + " heightSize=" + heightSize);

//(1)實現文字自動換行顯示

//文字的寬度

int mTextWidth = mTextBoundOther.width();

if (mTextList.size() == 0) {

//將文本分段

int padding = getPaddingLeft() + getPaddingRight();

int specMaxWidth = widthSize - padding;//可顯示文本的最大寬度

//最大寬度大于文字所占寬度,則一行就能顯示完全

if (specMaxWidth >= mTextWidth) {

lineNum = 1;

mTextList.add(mText);

} else {

//超過一行,需切割,分行顯示

spLineNum = mTextWidth * 1.0f / specMaxWidth;

//如果有小數的話就進1

if ((spLineNum + "").contains(".")) {

lineNum = (float) (spLineNum + 0.5);

} else {

lineNum = spLineNum;

}

//每行展示的文字的長度

int lineLength = (int) (mText.length() / spLineNum);

for (int i = 0; i < lineNum; i++) {

String lineStr;

//判斷是否可以一行展示

if (mText.length() < lineLength) {

lineStr = mText.substring(0, mText.length());

} else {

lineStr = mText.substring(0, lineLength);

}

mTextList.add(lineStr);

//內容切割完,記錄切割后的字符串,重新賦值給mText

if (!TextUtils.isEmpty(mText)) {

if (mText.length() < lineLength) {

mText = mText.substring(0, mText.length());

} else {

mText = mText.substring(lineLength, mText.length());

}

} else {

break;

}

}

}

}

//(2)下面對wrap_content這種模式進行處理

int width;

int height;

if (widthMode == MeasureSpec.EXACTLY) {

width = widthSize;

} else {

//如果是wrap_content,我們需要得到控件需要多大的尺寸

//首先丈量文本的寬度

float textWidth;

if (mTextList.size() > 1) {

textWidth = widthSize;

} else {

textWidth = mTextBoundOther.width();

}

//控件的寬度就是文本的寬度加上兩邊的內邊距。內邊距就是padding的值,在構造方法執行完被賦值

width = (int) (getPaddingLeft() + textWidth + getPaddingRight());

}

if (heightMode == MeasureSpec.EXACTLY) {

height = heightSize;

} else {

//如果是wrap_content,我們需要得到控件需要多大的尺寸

//首先丈量文本的寬度

// float textHeight = mTextBoundOther.height();

float textHeight = drawTextHeight * mTextList.size();

//控件的寬度就是文本的寬度加上兩邊的內邊距。內邊距就是padding的值,在構造方法執行完被賦值。遺留問題:最后一行顯示高度不夠,在這里加上10px處理

height = (int) (getPaddingTop() + textHeight + getPaddingBottom() + 10);

}

//保存丈量結果

setMeasuredDimension(width, height);

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

/**

* 測試文字的繪制區域

*/

// //繪制字符串所占的矩形區域

// mPaint.setColor(Color.GREEN);

// canvas.drawRect(mMaxRect, mPaint);

//

// //繪制最小矩形

// mPaint.setColor(Color.RED);

// canvas.drawRect(mTextBound, mPaint);

//

// //繪制文字-繪制的起點是:繪制文字所在矩形的左下角頂點

// mPaint.setColor(Color.WHITE);

// canvas.drawText(text, baseLineX, baseLineY, mPaint);

//

// //繪制基線

// mPaint.setColor(Color.RED);

// canvas.drawLine(0, baseLineY, mScreenWidth, baseLineY, mPaint);

//

// mPaint.setColor(Color.YELLOW);

// canvas.drawLine(0, top, mScreenWidth, top, mPaint);

// mPaint.setColor(Color.GREEN);

// canvas.drawLine(0, ascent, mScreenWidth, ascent, mPaint);

// mPaint.setColor(Color.BLACK);

// canvas.drawLine(0, descent, mScreenWidth, descent, mPaint);

// mPaint.setColor(Color.WHITE);

// canvas.drawLine(0, bottom, mScreenWidth, bottom, mPaint);

// 繪制Hello World !

// canvas.drawText(text, getWidth() / 2 - mTextBoundOther.width() / 2, getHeight() / 2 + mTextBoundOther.height() / 2, mPaint);

//分行繪制文字

for (int i = 0; i < mTextList.size(); i++) {

mPaint.getTextBounds(mTextList.get(i), 0, mTextList.get(i).length(), mTextBoundOther);

//換行左對齊展示

if (showMode == 0) {

canvas.drawText(mTextList.get(i), 0 + getPaddingLeft(), (getPaddingTop() + drawTextHeight * (i + 1)), mPaint);

} else if (showMode == 1) {

//換行居中展示

canvas.drawText(mTextList.get(i), (getWidth() / 2 - mTextBoundOther.width() / 2) + getPaddingLeft(), (getPaddingTop() + drawTextHeight * (i + 1)), mPaint);

}

}

}

/**

* 控制文字對齊方式:居中或者居左

*

* @param showMode

*/

public void reLayoutText(int showMode) {

this.showMode = showMode;

invalidate();

}

}

涉及到的自定義屬性:attrs.xml中

在布局文件中使用,測試代碼:

xmlns:mytext="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@color/colorAccent">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@android:color/white"

android:onClick="textLayoutLeft"

android:text="文字居左對齊" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:background="@android:color/white"

android:onClick="textLayoutCenter"

android:text="文字居中對齊" />

android:id="@+id/mytextview"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:background="@android:color/holo_red_dark"

mytext:showMode="center"

mytext:text="來一碗大的毒雞湯:無論做什么事情,你首先要想到的不是你能得到什么,而是你能接受失去什么,當你無畏失去什么的時候,你就變得無敵了。人生最重要的不是所站的位置是所站的位置是所站的位置是所站的位置是所站的位置你來自何處并不重要,重要的是你要去往何方,人生最重要的不是所站的位置,而是所去的方向。人只要不失去方向,就永遠不會失去自己!無論做什么事情,你首先要想到的不是你能得到什么,而是你能接受失去什么,當你無畏失去什么的時候,你就變得無敵了"

mytext:textColor="@android:color/white"

mytext:textSize="50px" />

歡迎各位讀者一起來探索下面的待解決的問題:

1、中英文混排時展示有問題

2、最后一行測量給的高度不夠,導致最后一行展示不全

3、textSize的單位,在布局文件中沒有處理成sp,而是px。如果需要處理成sp,可以參考系統TextView源碼。

image.png

可以參考如下處理方式:

mTextSize = (int) typedArray.getDimension(R.styleable.MyTextViewApprence_textSize, sp2px(mTextSize));

/**

* 將sp轉換成px

*

* @param sp

* @return

*/

private int sp2px(int sp) {

return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp,

getResources().getDisplayMetrics());

}

總結

以上是生活随笔為你收集整理的android 换行模式,Android进阶之自定义View(1)实现可换行的TextView的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

伊人超碰在线 | 国产精品视频线看 | av电影久久| 人人澡人人爽欧一区 | 五月天婷婷狠狠 | 亚洲精品视频第一页 | 国产在线观看免 | 色91在线 | 免费在线一区二区 | 日日干天天插 | 在线观看完整版免费 | 很黄很色很污的网站 | 国产精品人人做人人爽人人添 | 在线黄色毛片 | 国产美女无遮挡永久免费 | 91看片在线看片 | 一级黄色大片 | 最近中文国产在线视频 | 天天透天天插 | 国内精品久久久久久久久久久久 | 国产又粗又猛又黄又爽的视频 | 中文字幕在线观看免费观看 | 亚洲精品久久久蜜臀下载官网 | 亚洲精品一区二区久 | 成人在线观看免费视频 | 天天操天天射天天 | 欧美激情视频在线免费观看 | 国产97在线视频 | 亚洲理论在线观看电影 | 91精品亚洲影视在线观看 | 日韩69视频 | 欧美性精品 | 国产日韩精品在线 | 国产精华国产精品 | 国产91在线免费视频 | 国产97色 | 亚洲精品国偷自产在线91正片 | 亚洲理论电影 | 国产成人精品一区一区一区 | 激情综合网在线观看 | 午夜久久福利影院 | 欧美日韩在线视频一区二区 | 久久天天操 | 色婷婷 亚洲 | 久久午夜国产 | 中文字幕在线观看完整版 | 午夜美女视频 | 操操操日日日干干干 | 日韩h在线观看 | 国产手机在线精品 | 不卡的av中文字幕 | 91精品国产麻豆国产自产影视 | 天天鲁天天干天天射 | 超碰97人人在线 | 综合网伊人 | 日本精a在线观看 | 粉嫩av一区二区三区四区在线观看 | 日韩最新av在线 | 91人人视频在线观看 | 国产一区高清在线观看 | 日韩成人精品一区二区 | 亚洲国产精品人久久电影 | 久久久999免费视频 日韩网站在线 | 天天婷婷| 久久免费在线观看视频 | 色欧美88888久久久久久影院 | 高清av中文在线字幕观看1 | 久久成人综合视频 | 亚洲精品在线一区二区三区 | 在线免费看片 | 午夜视频一区二区三区 | 免费看成人av | 欧美久久久久久久 | 免费看片网站91 | 亚洲永久精品国产 | 综合网欧美 | 亚洲人成人在线 | 日日干干 | 亚洲涩涩网| 国产精品www | 91精品免费视频 | 成人一区二区三区中文字幕 | 国产高清在线不卡 | 久久精品79国产精品 | 91mv.cool在线观看 | 欧美一级电影 | 9999激情 | 天天摸天天操天天舔 | 久久国产精品99国产精 | 久久久国产精品久久久 | 一区二区三区精品在线视频 | 激情五月亚洲 | 久久伦理电影网 | 日韩亚洲在线 | 中文字幕在线观看第一页 | 高清不卡免费视频 | 国产伦理精品一区二区 | 亚洲欧美怡红院 | 国产精品免费久久 | 手机看片福利 | 超碰999| 亚洲激情在线观看 | 97视频在线免费观看 | 日韩色中色 | 色噜噜狠狠色综合中国 | 超碰97人人干 | 在线a人片免费观看视频 | 亚洲综合精品在线 | 狠狠操天天射 | 四虎免费在线观看视频 | 欧美日韩中文字幕综合视频 | 色中色资源站 | 在线国产视频一区 | 91成人精品一区在线播放 | 亚洲精品视频网站在线观看 | 国产激情电影综合在线看 | 亚洲免费婷婷 | 久久精品综合视频 | 97超碰人 | 日韩激情中文字幕 | 国产在线a| 久久久久久久久久久久久影院 | 亚洲妇女av | 一本一本久久aa综合精品 | 亚洲精品久久久蜜桃 | 特级毛片aaa | 国产精品一区久久久久 | 亚洲影视资源 | 成人av教育 | 国产手机在线精品 | 亚洲午夜小视频 | 日韩久久精品一区 | 黄色三几片 | 久久综合五月 | 色婷婷福利视频 | 99精品视频免费看 | 这里只有精品视频在线观看 | 日韩免费一区二区三区 | 午夜婷婷在线观看 | www夜夜操com | 国产黄 | 国产精品日韩久久久久 | 欧美日韩中文字幕在线视频 | 主播av在线 | 97日日碰人人模人人澡分享吧 | 日本久久高清视频 | 国产一区二区影院 | 久久久精品免费看 | 国产精品久久久久一区二区 | 亚洲精品99久久久久久 | 日韩成片 | 99久久这里有精品 | 亚洲干视频在线观看 | 丁香花中文字幕 | 日韩精品视频久久 | 亚洲成人在线免费 | 日韩一区二区三区视频在线 | 一级特黄av | 久草视频99 | 九九99视频 | v片在线看| 在线国产一区二区 | 天天摸日日摸人人看 | 天堂网一区二区三区 | 91在线观看欧美日韩 | 日韩av不卡播放 | 超碰在线人人97 | 国产精品久久婷婷六月丁香 | 天天综合网 天天综合色 | 精品国产美女 | 91激情视频在线 | 久久激情视频免费观看 | 亚洲欧美日韩中文在线 | 久久综合久久综合久久综合 | 色网站中文字幕 | 日b视频在线观看网址 | 美女视频黄在线观看 | 五月天电影免费在线观看一区 | 久久99中文字幕 | 成人观看视频 | 天天爱天天干天天爽 | 久久久久五月天 | 一区二区三区四区五区在线视频 | 欧美另类色图 | 亚洲第二色 | 五月天天色 | 精品亚洲视频在线观看 | 五月天视频网 | 在线视频区| 欧美婷婷色 | 亚洲成人av一区二区 | 欧美成人精品三级在线观看播放 | 午夜一级免费电影 | 国产视频在线观看一区二区 | 日韩午夜在线播放 | 在线播放日韩av | 日日摸日日碰 | 手机在线视频福利 | 久在线 | www.成人精品 | 日韩电影一区二区在线观看 | 91成人黄色 | 久久在线观看视频 | 亚洲日本va在线观看 | www黄色| 日韩艹 | 99久久精品国产毛片 | 亚洲国产片色 | 国产网红在线 | 91网在线看 | 99re国产视频 | wwwwwww黄| 综合天天久久 | 国产97在线视频 | 国产精品99在线观看 | 久久女同性恋中文字幕 | 精品国产1区2区3区 国产欧美精品在线观看 | 日本高清免费中文字幕 | 欧美性大胆| 国产精品久久久久久久午夜 | 精品国产成人 | 日本在线成人 | 成 人 黄 色 免费播放 | 天天干夜夜爱 | 91精品伦理| 日韩免费高清在线观看 | 亚洲三级黄 | 国产精品高清免费在线观看 | 激情五月视频 | 国产精品色婷婷 | 丁香视频五月 | 日本激情视频中文字幕 | 国产福利久久 | 久久精品高清视频 | 成人欧美一区二区三区黑人麻豆 | 视频一区在线播放 | 日韩精品视频网站 | 日韩二区三区 | 精品女同一区二区三区在线观看 | 精品视频网站 | 2020天天干夜夜爽 | 日本天天操 | 免费欧美高清视频 | 国产视频每日更新 | 精品毛片一区二区免费看 | 亚洲aⅴ乱码精品成人区 | 免费看毛片在线 | 日韩黄视频 | 9色在线视频| 国产精品久久久久久超碰 | 91久色蝌蚪 | 亚洲国产成人在线 | 婷婷久久丁香 | 亚洲天天综合网 | 久久精品一区二区 | 久久久国产精品免费 | 亚洲高清视频一区二区三区 | 中文字幕第一页在线播放 | 中文字幕视频播放 | 欧美性生交大片免网 | 久草在线久 | 日韩精品一区二区三区在线播放 | 久草视频观看 | 国产高清视频免费最新在线 | 免费在线观看成人 | 国产一级高清视频 | 一本一道久久a久久综合蜜桃 | 91精品国产91久久久久福利 | 欧美日韩伦理在线 | 黄色成品视频 | 黄色大片日本免费大片 | 丝袜+亚洲+另类+欧美+变态 | 久久观看免费视频 | 日本黄色大片儿 | 字幕网在线观看 | 精品国内自产拍在线观看视频 | 91视频在线 | 黄色大片视频网站 | 97超碰超碰久久福利超碰 | 久久经典视频 | 国产99久久久国产精品成人免费 | 最近中文字幕第一页 | 久久久999| 五月天综合网站 | 9草在线 | 蜜臀av网站 | 中文字幕在线一区观看 | 美女黄频在线观看 | 男女啪啪免费网站 | 免费看一及片 | 九草视频在线观看 | 国产日产av | a天堂一码二码专区 | 在线观看视频在线观看 | av九九九| 久久伊人精品一区二区三区 | 美女免费网视频 | 欧美在线视频一区二区三区 | 天天色天天综合 | 亚洲精品美女 | av成人在线电影 | 国产精品电影一区 | 日本精品中文字幕在线观看 | 在线国产黄色 | 国内精品久久久久影院优 | 黄色小说视频在线 | 午夜久久视频 | 精品欧美在线视频 | 久久久精品国产一区二区 | 夜夜操狠狠操 | 日韩精品最新在线观看 | 香蕉精品视频在线观看 | 国产精品涩涩屋www在线观看 | 中文字幕日韩精品有码视频 | 国产无遮挡又黄又爽馒头漫画 | 91精品国自产拍天天拍 | 欧美怡红院视频 | 在线国产福利 | 天天干夜夜夜操天 | 在线视频电影 | 亚洲精品女 | 97超碰资源总站 | 久草综合在线 | 欧美日韩免费看 | 国产精品一区二区美女视频免费看 | 91看片看淫黄大片 | 免费看一级特黄a大片 | 免费在线国产视频 | 欧美一区二区三区四区夜夜大片 | 中文字幕在线一区二区三区 | 成人免费在线视频观看 | 成人app在线免费观看 | 激情开心色| 一区二区三区免费看 | 99视频在线观看一区三区 | 久久久资源 | 国产69精品久久99不卡的观看体验 | 中文字幕av专区 | 免费看片在线观看 | 最新99热| 丁香九月激情综合 | 天天天色 | 在线观看av国产 | 免费在线一区二区三区 | 天堂av中文字幕 | 日韩综合在线观看 | 4438全国亚洲精品在线观看视频 | 欧美一级性生活片 | 亚洲精品免费视频 | 精品国产不卡 | 精品国产免费看 | 国产精品99久久久久久人免费 | 国产分类视频 | 久久久人人人 | 高清久久久久久 | 国产精品99久久久久久大便 | 欧美黄色成人 | 精品96久久久久久中文字幕无 | 91亚洲精品久久久 | 手机看片99 | 午夜精品一区二区三区视频免费看 | 精品国产欧美一区二区三区不卡 | 在线成人一区 | 天天综合亚洲 | 国产69精品久久久久9999apgf | av一级片在线观看 | 九九视频网 | 成人a级大片 | www.久久久精品 | 国色天香永久免费 | 三级黄色网址 | 色婷婷六月 | 亚洲 精品在线视频 | 天天射日 | 成人性生交大片免费看中文网站 | 久久国产香蕉视频 | 日日爱夜夜爱 | 天天曰天天曰 | 成 人 黄 色 视频 免费观看 | 久久99国产一区二区三区 | www.成人久久 | 国产精品毛片完整版 | 99在线播放| 91一区二区三区在线观看 | 正在播放国产精品 | 在线成人国产 | 97视频在线观看免费 | av在线网站观看 | 天天天操天天天干 | 色多多污污 | 狠狠躁日日躁狂躁夜夜躁av | 天天干天天拍 | 久久五月天色综合 | 字幕网资源站中文字幕 | 国产精品区一区 | 狠狠狠干| 欧美日韩视频精品 | 久热av| 超碰97中文 | 婷婷色网 | 久久久久女人精品毛片 | 久色 网| 日韩国产欧美在线视频 | 国产在线理论片 | 91亚洲精品久久久中文字幕 | 在线观看视频三级 | 国产精品日韩在线观看 | 国产午夜免费视频 | 国产69精品久久久久久久久久 | 国产精品不卡在线播放 | 久久精品国产一区二区电影 | 色大片免费看 | 欧美日韩国产一区二 | 国产亚洲精品久 | 午夜影院一级 | 黄色一级大片在线免费看产 | 久久成人免费电影 | 国产亚洲成人网 | av在线小说 | 91看片网址 | 黄色影院在线播放 | av手机版| 久久尤物电影视频在线观看 | 国产99久久久国产精品成人免费 | 亚洲va欧美 | 欧美日韩亚洲在线 | 四虎国产精品永久在线国在线 | 精品国产乱码一区二区三区在线 | 精品一区二区在线免费观看 | 国产精品毛片一区二区在线看 | 亚洲欧美日韩国产精品一区午夜 | 亚洲精品观看 | 97国产在线观看 | 亚洲精品高清视频 | 成人在线视频免费看 | 久草手机视频 | 色噜噜日韩精品一区二区三区视频 | 国产91免费看 | 国产精品99久久久久久大便 | 在线小视频 | 亚洲高清视频一区二区三区 | 国产一区在线观看视频 | 亚洲综合在线五月天 | 黄色网址中文字幕 | 亚洲精品视频网站在线观看 | 久久av观看| 久久99国产视频 | 91精品国产电影 | 日韩久久久久久久 | 国产亚洲亚洲 | 特级大胆西西4444www | 亚洲精品小视频在线观看 | 欧洲一区精品 | 一区二区三区四区五区六区 | 亚洲成人国产精品 | a级成人毛片 | 99精品一级欧美片免费播放 | av在线免费网站 | 久热这里有精品 | 少妇搡bbbb搡bbb搡忠贞 | 97国产视频 | 国产精品免费观看国产网曝瓜 | 亚洲成 人精品 | 97福利在线观看 | a色网站| 久久九九免费 | 婷婷日日 | www.久久com| 五月婷婷一区二区三区 | 国产成人精品电影久久久 | 欧美精品少妇xxxxx喷水 | 99久久精品免费视频 | 国产精品一区二区三区在线免费观看 | 国产精品久久久久久久久搜平片 | 久久超级碰视频 | 国内精品中文字幕 | 狠狠躁日日躁狂躁夜夜躁 | 91精品国产综合久久福利 | 天天插天天射 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 成人精品一区二区三区电影免费 | 99久久婷婷国产精品综合 | 91国内在线视频 | 欧美精品久久人人躁人人爽 | 亚洲春色成人 | 久久久国产精品电影 | 欧美黄色高清 | 99精品视频网站 | 日韩av免费大片 | 色狠狠综合天天综合综合 | 午夜少妇一区二区三区 | 美女国内精品自产拍在线播放 | 中文字幕av全部资源www中文字幕在线观看 | 中文字幕在线观看资源 | www日日夜夜 | 日韩免费电影 | av青草 | 91网站观看 | 99精品在线免费观看 | 丁香花在线观看免费完整版视频 | 精品亚洲va在线va天堂资源站 | 手机av片 | 亚洲国产mv | 国产视频在线免费观看 | a电影在线观看 | 免费精品国产va自在自线 | 久久久久欧美精品999 | 黄色app网站在线观看 | 精品中文字幕在线观看 | 黄色福利网| 黄色免费av| 久久久久久高潮国产精品视 | 精品国产乱码久久久久久1区二区 | 午夜影视剧场 | 在线亚洲成人 | 久久久精品国产一区二区电影四季 | 日韩免费在线观看视频 | 又黄又刺激的视频 | 91在线九色 | 久久久黄色免费网站 | 久久高清片| 激情小说 五月 | 久久久国内精品 | 日韩免费观看高清 | 免费成人av网站 | 免费又黄又爽视频 | 久久精品视频免费播放 | 国色天香在线观看 | 人成午夜视频 | 麻豆一精品传二传媒短视频 | 国产黄色精品在线 | 日韩视频在线观看免费 | 特级毛片aaa| 日韩区欧美久久久无人区 | 久久国产三级 | 中文字幕在线看视频国产中文版 | 日韩电影久久 | 久久久久久久久久福利 | 中文字幕网站视频在线 | 久久久久久久久久福利 | 午夜少妇一区二区三区 | 亚洲h色精品 | 国产在线专区 | 亚洲成人精品久久久 | 97在线观看免费高清完整版在线观看 | 欧美日韩高清在线一区 | 超碰97公开 | 日韩欧美电影在线观看 | 超碰97中文 | 日韩在线观看一区二区 | 日韩视频专区 | 91黄色视屏 | 国产亚洲精品bv在线观看 | 国产免费成人 | 干天天| 久草综合在线 | 日日摸日日添日日躁av | 中文字幕黄色 | 亚洲精品视频网站在线观看 | 黄色毛片电影 | 国产三级精品三级在线观看 | 久免费 | 国产视频在线播放 | 蜜臀av夜夜澡人人爽人人桃色 | 欧美日韩久久久 | 国产高清视频在线播放一区 | 91免费在线播放 | 一区二区三区国产欧美 | 免费观看www视频 | 久久久国产精品成人免费 | 99热精品久久 | 国产精品18久久久久白浆 | 午夜视频在线观看网站 | 成人av资源在线 | 国产精品乱码久久久久久1区2区 | 免费a级毛片在线看 | 精品视频专区 | 91香蕉视频 mp4 | 国产精品在线看 | 国产在线不卡 | 爱情影院aqdy鲁丝片二区 | 最新av在线播放 | 99视频偷窥在线精品国自产拍 | 韩国av免费观看 | 99中文字幕| 久久精品视频国产 | 免费v片| 精品在线99 | 久久久久成人精品 | 日韩色一区二区三区 | 视频 天天草 | 中文字幕 国产 一区 | 日韩资源在线观看 | 国产成人一区二区三区 | 久久久久久福利 | 亚洲性xxxx | 亚洲观看黄色网 | 亚洲 欧洲 国产 精品 | 国内精品久久久精品电影院 | 中文字幕一区在线观看视频 | 欧美伦理一区二区 | 91久久国产自产拍夜夜嗨 | www国产亚洲 | 91在线精品秘密一区二区 | 人人玩人人添人人澡97 | 国产精品久久久一区二区三区网站 | 日本精品久久久久中文字幕5 | 欧美日韩另类在线观看 | 欧美久草视频 | 久久免费看av | 黄色在线免费观看网址 | 免费看黄色小说的网站 | 在线免费观看av网站 | 成人av在线网 | 国产高清在线永久 | 日本中文字幕视频 | 国产99自拍| 精品国产精品久久一区免费式 | 二区三区精品 | 狠狠色香婷婷久久亚洲精品 | 99精品国产免费久久久久久下载 | 这里只有精品视频在线观看 | 亚洲一区日韩 | 夜夜夜影院 | 国产91学生粉嫩喷水 | 亚洲亚洲精品在线观看 | 久久久久久久99精品免费观看 | av手机在线播放 | 国产精品ⅴa有声小说 | www.久草视频 | 亚洲电影成人 | 亚洲视频在线观看 | 亚洲精品乱码白浆高清久久久久久 | 国产精品久久久久四虎 | 日韩一区精品 | 天天视频色版 | 麻豆一区二区三区视频 | av激情五月 | 综合色婷婷 | 国产视频久 | 天天爱综合 | 天天色天天草天天射 | 一区免费视频 | 波多野结衣久久资源 | 97国产情侣爱久久免费观看 | 99久久久久久久 | 色婷婷成人网 | 日日夜夜综合网 | 久久久久国 | 天天综合天天综合 | 日日操夜夜操狠狠操 | 亚洲精品午夜久久久久久久久久久 | 一级成人网 | 99精品影视 | 99综合视频 | 一区二区三区四区精品 | 日日干日日色 | 91夫妻自拍| 91av观看 | 精品一区二区久久久久久久网站 | 国产一级高清视频 | 麻豆果冻剧传媒在线播放 | 亚洲视频免费视频 | 一区二区三区三区在线 | 久久久免费网站 | 久久久久久久久久久久国产精品 | 亚洲成年片 | 午夜久久电影网 | 国产毛片在线 | 美国av大片| av大全在线免费观看 | 欧美激情操 | 午夜视频在线观看网站 | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲综合在线视频 | 中文字幕久久精品一区 | 国产精品av在线免费观看 | 天天翘av| 亚洲最大激情中文字幕 | 在线播放日韩av | 蜜臀aⅴ国产精品久久久国产 | 精品天堂av| 成人免费在线观看av | 免费看黄色毛片 | 超碰官网 | 四虎在线视频免费观看 | 免费看的黄色片 | 欧美三级免费 | 国产精品久久久久aaaa九色 | www好男人| 国产精品一区二区中文字幕 | 精品视频免费 | 西西444www大胆无视频 | 美女在线免费视频 | 久久精品免费看 | 天天综合天天做天天综合 | www免费看| 88av色| 中文字幕在线观看免费 | 玖玖999| 精品国产理论 | 99热在线国产精品 | 欧美日韩精品免费观看视频 | 国产91影院 | 最近2019好看的中文字幕免费 | 国产精品久久久久久久久久三级 | 国产精品久久久久久久久岛 | 久久久午夜精品理论片中文字幕 | 香蕉视频在线免费 | 国产在线综合视频 | v片在线看 | 亚洲经典视频在线观看 | 欧美精选一区二区三区 | 国产一区二区高清 | 毛片无卡免费无播放器 | 国产精品岛国久久久久久久久红粉 | 精品9999 | 韩国av一区二区三区 | 国产破处在线视频 | 深爱婷婷 | 日韩精品视频一二三 | 亚洲色五月 | 精品亚洲在线 | 免费涩涩网站 | 免费国产一区二区视频 | www.国产精品 | 一区二区伦理电影 | 麻豆国产精品一区二区三区 | 超碰在线国产 | 欧美永久视频 | 亚洲国产网站 | 成人免费观看在线视频 | 丁香六月婷 | 欧美精品中文在线免费观看 | 色婷婷狠狠五月综合天色拍 | 青青河边草免费直播 | 成人资源在线播放 | 久草免费电影 | 久久国产精品久久国产精品 | 欧美日韩国内在线 | 色婷婷在线播放 | 国产一区电影在线观看 | 99在线热播 | 国模一区二区三区四区 | 丁香花在线观看视频在线 | 99精品在线免费视频 | 久久国产二区 | 国产日韩视频在线观看 | 中文字幕中文字幕中文字幕 | 日韩免费区 | 日本精品视频免费 | www.69xx | 午夜精品久久久久久久99 | 免费观看国产成人 | 九九九热视频 | 国产免费一区二区三区最新 | 视频精品一区二区三区 | 伊人黄| 国产系列精品av | 国产自偷自拍 | 日韩美女久久 | 精品视频网站 | 久久超级碰 | 手机看片国产 | 伊人色综合网 | 国产人成一区二区三区影院 | 中文字幕日韩国产 | 天天色成人 | 午夜精品一区二区三区在线视频 | 欧美一区二视频在线免费观看 | 青青五月天| 制服丝袜欧美 | 色婷婷88av视频一二三区 | 久久视频在线观看免费 | 99在线观看视频网站 | 国产精品毛片网 | 天天干天天拍天天操天天拍 | 午夜狠狠干 | 99精品视频在线播放观看 | 欧美激情综合五月色丁香小说 | 中文字幕色站 | 日韩一区在线播放 | www.av免费观看 | 高清有码中文字幕 | 成年人看片 | 中文字幕在线免费看线人 | 奇米影视8888| 91视频91色 | 特级黄色视频毛片 | 国产精品久久久久久99 | 久久综合久色欧美综合狠狠 | 欧美性天天 | 久久久久久久久久久黄色 | 婷婷色综合网 | 欧美a级在线播放 | 免费合欢视频成人app | 日韩激情中文字幕 | 亚洲视频1区2区 | 国产我不卡 | 丁香午夜 | 91尤物国产尤物福利在线播放 | 色偷偷888欧美精品久久久 | 中文字幕91视频 | 亚洲精品在线免费 | 国内精品久久久久久久久久 | 在线观看自拍 | 久久久久久久影视 | 日本女人的性生活视频 | 免费在线看成人av | 久久久成人精品 | 色七七亚洲影院 | 日韩美女黄色片 | 97在线影视 | 91色在线观看 | 国产精品第一视频 | 国产一级黄色av | 91成人天堂久久成人 | 国产精品久久久一区二区三区网站 | 在线v片| 黄色三级在线观看 | 日韩一级片观看 | 精品久久久久久亚洲综合网站 | 国产在线久草 | 天天干夜夜爽 | 手机在线看永久av片免费 | 五月激情av | 色综合久久久 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 96av麻豆蜜桃一区二区 | av电影在线免费观看 | 热久在线 | 免费a视频在线观看 | 久久99最新地址 | 久久伊99综合婷婷久久伊 | 亚洲美女在线国产 | 国产黄色大片免费看 | 999成人 | 夜夜躁日日躁狠狠久久av | 午夜精品一区二区三区四区 | 亚洲一级影院 | 日日爽| 天天干天天做天天爱 | 69av免费视频 | 久久精品久久久久久久 | 久久综合九色综合久久久精品综合 | 日韩激情视频在线 | 日韩精品黄 | 国产少妇在线观看 | 久久综合成人 | 色久综合 | 97国产情侣爱久久免费观看 | 一区二区伦理 | 亚洲欧美激情插 | 国产一级片不卡 | 国产精品中文在线 | 久久久久久久久久久免费视频 | 五月婷婷视频在线 | 久久久香蕉视频 | 日韩艹 | 国产精品午夜久久 | 国产99久久精品一区二区300 | 日韩欧美成 | 麻豆久久久久久久 | 久久久久电影网站 | 中文字幕在线观看1 | 91麻豆免费版| 久草网站在线 | 亚洲天堂网站 | av观看网站| 成人黄大片视频在线观看 | aa级黄色大片 | 国产色小视频 | 欧美色操 | 少妇高潮冒白浆 | 亚洲人在线视频 | 免费三级在线 | 久久视频免费观看 | 五月婷婷久久丁香 | 国产一区在线视频播放 | 最新免费av在线 | 韩国av一区二区三区 | 日韩av网站在线播放 | 尤物九九久久国产精品的分类 | 日韩在线观看一区二区三区 | 免费看黄电影 | 精品欧美小视频在线观看 | 欧美一区三区四区 | 久久久久亚洲国产精品 | 国产高清小视频 | 正在播放 国产精品 | 欧洲精品视频一区二区 | 最近中文字幕免费av | 国产免费一区二区三区网站免费 | 日韩精品电影在线播放 | 97在线观看免费 | 国产午夜精品一区二区三区嫩草 | 日韩高清免费在线 | 一区二区三区在线视频观看58 | 99精品欧美一区二区 | 六月丁香激情网 | 在线观看国产 | 操操操com | 九九九九九国产 | 国产精品麻豆91 | 成年人看片网站 | 九九热只有精品 | 婷色在线| 国产日韩欧美综合在线 | 国产品久精国精产拍 | 欧美性生活小视频 | 亚洲专区视频在线观看 | 91精品国产91热久久久做人人 | 成人四虎| 激情欧美一区二区三区免费看 | 日本三级不卡 | 天天爱天天操天天爽 | 99免费观看视频 | 97超级碰碰碰视频在线观看 | 久久免费视频8 | 国产成人一区二区啪在线观看 | 又紧又大又爽精品一区二区 | 亚洲欧美日本一区二区三区 | 久久精品美女视频网站 | 国产精品福利无圣光在线一区 | 日韩高清在线观看 | 丁香九月婷婷 | 国产精品专区在线观看 | 国产大片免费久久 | 久久久久久久久免费 | 深爱开心激情网 | 精品国模一区二区三区 | 精品国产伦一区二区三区 | 国产 中文 日韩 欧美 | 精品视频成人 | 91在线你懂的 | 国产精品美女在线观看 | 久久九九九九 | 日韩动态视频 | 在线播放一区 | 久久久国产精品亚洲一区 | 射射射av| 在线视频电影 | 777视频在线观看 | 国产高清视频 | 爱爱av网站 | 91在线视频观看免费 | 中文字幕一区二区三区精华液 | 亚洲国产免费 | 91免费观看视频网站 | 操高跟美女| 伊人看片| 国产在线高清精品 | 精品久久久久久久久亚洲 | 国产色婷婷精品综合在线手机播放 | av免费网页 | 激情六月婷婷久久 | 免费高清在线观看电视网站 | 日韩高清在线一区二区三区 | 亚洲午夜精 | 天天干天天干天天色 | 久久久av免费 | 日韩在线视频观看免费 | 国产精品一区二区久久精品 | 美女在线免费观看视频 | 天天操天天操天天操天天 | 中文字幕亚洲五码 | 丰满少妇对白在线偷拍 | 午夜精品一区二区三区视频免费看 | 国产 在线 高清 精品 | 九色自拍视频 | 欧美日韩在线免费观看 | 精品国模一区二区三区 | 国产精品美乳一区二区免费 | 超碰97在线人人 | 成人中心免费视频 | 国产高清福利在线 | 日韩av在线免费播放 | 国内精品视频在线 | 日韩精品中文字幕在线 | 国产一区二区高清不卡 | 免费人成网 | 成人黄色在线视频 | 国产成人精品一区二区三区福利 | 四虎国产精品永久在线国在线 | 五月婷婷六月丁香 | 久久伦理网 | 国产精品久久久久久久久久久久午夜 | 99视频网址 | 久久国产经典 | 国产精品入口a级 | 欧美永久视频 | 国内揄拍国内精品 | 91精品久| av国产在线观看 | 美女视频a美女大全免费下载蜜臀 | 亚洲精品在线免费 | 免费婷婷 | 天天曰夜夜爽 |