整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          TextView實現Android圖文混排顯示HTML內容

          ndroid 中的 TextView 組件常用于顯示文本內容,其實它也可以顯示 HTML 的內容。簡單來講,這就需要先把 HTML 的內容以字符串的形式獲取后,經過 android.text.Html.fromHtml()轉化成 Spanned 的格式,然后將其傳遞到 TextView 的 setText()方法中,這樣就可以在 TextView 中顯示 HTML 頁面的內容了。需要注意的是,并不是所有的 HTML 標簽在 TextView 中都是支持的,且官方文檔并沒有明確的說明支持 HTML 標簽列表,通過查看 Android 源代碼,可以得到簡單的支持列表。

          {<br>,< p>,< div align=>,< strong>, <b>, <em>, <cite>, <dfn>, <i>, <big>, <small>, <font size=>,  <font color=>, <blockquote>, <tt>, <a href=>, <u>, <sup>, <sub>, <h1>,<h2>,<h3>,<h4>,<h5>,<h6>, <img src=>, <strike>}
          1

          下面的示例來介紹如何在 TextView 中顯示一段 HTML 內容,要顯示的這段 HTML 內容即包含超鏈接內容,也包含有圖片。
          在 TextView 中顯示 HTML 內容

          顯示的過程中最主要的過程就是調用 Android.text.Html 類提供的 fromHtml()方法,將一段 HTML 內容轉化為 Spanned 對象。

          Android.text.Html 類提供的 fromHtml()方法使用如下清單 4
          fromHtml()方法定義

          public static Spanned fromHtml(String source, ImageGetter imageGetter,
              TagHandler tagHandler) {
                  ……
          HtmlToSpannedConverter converter =
          new HtmlToSpannedConverter(source, imageGetter, tagHandler,  parser);
          return converter.convert();
          }
          1234567

          source,就是包含 HTML 內容的字符串。而 Html.ImageGetter 和 Html.TagHandler 是兩個接口,提供給開發者繼承使用。
          imageGetter, 如果要顯示圖片是需要被繼承的,重寫 getDrawable(String source)方法,用于獲取 HTML 里面的圖片來顯示在 TextView 中。
          tagHandler,其作用是把 HTML 帶標記的文本內容字符串轉化成可以顯示效果的的 Spanned 字符串 。由于并非所有的 HTML 標簽都可以轉化,所以在使用時,用戶需要自己添加一些必要的標簽和處理方法時才會繼承使用的。

          在本例中使用 fromHtml()方法之前,要準備好該方法要用的三個參數內容,首先將 HTML 字符串內容準備好,在項目中需要創建兩個類 MImageGetter 和 MTagHandler 分別繼承于 ImageGetter 和 TagHandler,分別用戶圖片的獲取,和特殊標簽的支持。
          MImageGetter

          繼承于 ImageGetter,重寫 getDrawable (String source) 方法中從 assets 路徑下取出的圖片流(這里當然也可以通過網絡操作來完成圖片流的獲取),最后獲得可供顯示的圖片對象,例如 Drawable 對像。由于 Android 設備的異構性,為了有更好的顯示效果,通常需要獲取屏幕大小,然后調用 drawable.setBounds () 還可以重新設置圖片的大小, 最后返回合適大小的圖片 Drawable 對象。 由此 Spanned 中的 ImageSpan 就獲得了圖像被顯示在 TextView 中對應位置了。

          TypedValue typedValue = new TypedValue();
          typedValue.density = TypedValue.DENSITY_DEFAULT;
          drawable = Drawable.createFromResourceStream(null, typedValue, is, "src");
          DisplayMetrics dm = c.getResources().getDisplayMetrics();  
          int dwidth = dm.widthPixels-10;//padding left + padding right
          float dheight = (float)drawable.getIntrinsicHeight()*(float)dwidth/(float)drawable.getIntrinsicWidth();
          int dh = (int)(dheight+0.5);
          int wid = dwidth;
          int hei = dh;
          drawable.setBounds(0, 0, wid, hei);DisplayMetrics dm = c.getResources().getDisplayMetrics();
          12345678910

          MTagHandler

          繼承于 TagHandler,重寫了 handleTag()方法,為的是支持部分標簽,這四個標簽是在 formHtml()方法中本身是不支持。如果開發者認為安卓 TagHandler 提供的默認標簽解析已經夠用,直接在 fromHtml()方法中第三個參數的地方填寫 null 既可。
          重寫 handleTag()方法

          public void handleTag(final boolean opening, final String tag, Editable output, final XMLReader xmlReader) {
          if (tag.equals("ul") || tag.equals("ol") || tag.equals("dd")) {
              if (opening) {
              mListParents.add(tag);
              } else mListParents.remove(tag);
          } else if (tag.equals("li") && !opening) {
               handleListTag(output);
          }
          }
          private void handleListTag(Editable output) {
          ……
           }
          123456789101112

          最后,在完成了 MImageGetter、MTagHandler 以后,就可以通過 formHtml()方法將 HTML 內容轉化為可供顯示的 SpannableString,將 SpannableString 通過 setText 方法放入 TextView 中,就可以顯示圖文并茂的內容了。

          progressBar.setVisibility(View.GONE);
          text.setText(Html.fromHtml(htmlCont, new MImageGetter(text,MainActivity.this), new MTagHandler()));
          text.setVisibility(View.VISIBLE);
          123

          MImageGetter、MTagHandler 如下:

          extView不僅可以用于顯示豐富的文本信息,還可以用來顯示圖文并茂的混排頁面。

          1.TextView常用屬性

          TextView的常用屬性有以下一些:

          Java方法說明XML配置
          setText()設置文本內容android:text
          setTextSize()設置文本字體大小android:textSize
          setTextColor()設置文本顏色android:textColor
          setBackgroundColor()設置背景顏色android:background

          此外,還可以在xml中設置一些TextView的屬性,PPT中有提供相關的屬性介紹

          XML設置屬性說明
          android:autoLink設置是否顯示為可點擊的鏈接。可選值(none/web/email/phone/map/all)
          android:drawableBottom在text的下方輸出一個drawable(圖片)
          android:drawableLeft在text的左邊輸出一個drawable(圖片)
          android:drawableRight在text的右邊輸出一個drawable(圖片)
          android:drawableTop在text的正上方輸出一個drawable(圖片)
          android:drawablePadding設置text與drawable(圖片)的間隔,與drawableLeft、drawableRight、drawableTop、

          drawableBottom一起使用,可設置為負數,單獨使用沒有效果
          android:ellipsize設置當文字過長時,該控件該如何顯示。可設置如下屬性值:"start"省略號顯示在開頭;

          "end”省略號顯示在結尾;"middle"省略號顯示在中間; "marquee" 以跑馬燈的方式顯示(動畫橫向移動)
          android:gravity設置文本位置,設置成"center",文本將居中顯示
          android:linksClickable設置點擊時是否鏈接,即使設置了autoLink
          android:marqueeRepeatLimit在ellipsize設定為marquee時,設置重復滾動的次數,設置為marquee_forever時表示無限次。
          android:lines設置文本的行數,設置兩行就顯示兩行,即使第二行沒有數據
          android:shadowRadius設置陰影的半徑。設置為0.1就變成字體的顏色了,一般設置為3.0的效果比較好
          android:shadowColor指定文本陰影的顏色,需要與shadowRadius一起使用
          android:singleLine設置單行顯示
          android:textColorLink設置文字鏈接的顏色
          android:textScaleX設置文字之間間隔,默認為1.0f
          android:textStyle設置字形 bold(粗體) 0, italic(斜體) 1, bolditalic(又粗又斜) 2, 可以設置一個或多個,用“|”隔開
          android:typeface設置文本字體,必須是以下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字體) 3

          1.TextView中設置多種字體大小

          像這樣的兩種字體大小放到一個TextView中,我們應該如何處理呢?需要用到 android.text 命名空間下的一些與 spannable相關的類和接口。

          代碼如下:

          public class TextViewActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_text_view); String text = "您已經連續走了1000步"; int start = text.indexOf("1"); int end = text.length(); //對字體大小進行設置 Spannable textSpan = new SpannableStringBuilder(text); textSpan.setSpan(new AbsoluteSizeSpan(16), 0, start, Spannable.SPAN_INCLUSIVE_INCLUSIVE); textSpan.setSpan(new AbsoluteSizeSpan(26), start, end - 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE); textSpan.setSpan(new AbsoluteSizeSpan(16), end - 1, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE); //獲取元素對象 TextView tv = (TextView) findViewById(R.id.txt1); //賦值操作 tv.setText(textSpan); }}

          2.TextView中設置超鏈接

          這個比較簡單,設置我們上邊提到的android:autoLink屬性,默認為none

          代碼中的設置方式:setAutoLinkMask(int)。

          參數和上邊列表對應,分別為:Linkify.WEB_URLS,Linkify.EMAIL_ADDRESSES,Linkify.PHONE_NUMBERS,Linkify.MAP_ADDRESSES,Linkify.ALL

          但是需要注意的是,當我們需要定制超鏈接的跳轉時應該怎么做?答案是還是選擇Spannable。代碼如下:

          效果圖

          完整代碼

          package com.hanpang.textviewdemo;import android.content.Intent;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.Spannable;import android.text.SpannableString;import android.text.SpannableStringBuilder;import android.text.Spanned;import android.text.method.LinkMovementMethod;import android.text.style.AbsoluteSizeSpan;import android.text.style.ClickableSpan;import android.text.style.ForegroundColorSpan;import android.text.style.UnderlineSpan;import android.view.View;import android.widget.TextView;import android.widget.Toast;public class TextViewActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_text_view); TextView tv2 = (TextView) findViewById(R.id.txt2); //將TextView的顯示文字設置為SpannableString tv2.setText(getClickableSpan()); //設置該句使文本的超連接起作用 tv2.setMovementMethod(LinkMovementMethod.getInstance()); } //設置超鏈接文字 private SpannableString getClickableSpan() { SpannableString spanStr = new SpannableString("使用該軟件,即表示您同意該軟件的使用條款和隱私政策"); //設置下劃線文字 spanStr.setSpan(new UnderlineSpan(), 16, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設置文字的單擊事件 spanStr.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(TextViewActivity.this,"點擊了使用條款的連接",Toast.LENGTH_SHORT).show(); } }, 16, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設置文字的前景色 spanStr.setSpan(new ForegroundColorSpan(Color.GREEN), 16, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設置下劃線文字 spanStr.setSpan(new UnderlineSpan(), 21, 25, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設置文字的單擊事件 spanStr.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(TextViewActivity.this,"點擊了隱私政策的連接",Toast.LENGTH_SHORT).show(); } }, 21, 25, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設置文字的前景色 spanStr.setSpan(new ForegroundColorSpan(Color.GREEN), 21, 25, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spanStr; }}

          3.TextView 設置陰影

          簡單了解一下 Android中設置陰影也比較簡單,xml中可以這樣設置:

          android:shadowColor //指定文本陰影的顏色android:shadowDx //設置陰影橫向坐標開始位置android:shadowDy //設置陰影縱向坐標開始位置android:shadowRadius //設置陰影的半徑。設置為0.1會變成字體的顏色

          代碼中通過方法public void setShadowLayer (float radius, float dx, float dy, int color)來設置。

          代碼如下

           <TextView android:shadowColor="#FF0000" android:shadowDx="10.0" android:shadowDy="5.0" android:shadowRadius="2.5" android:text="我是胖先森" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView3" />

          4.字體加粗或者傾斜

          在xml布局文件中使用android:textStyle=”bold”可以將文字設置成粗體。

          在代碼中設置的方法是:使用TextPaint的仿“粗體”設置setFakeBoldText為true。

          tv.getPaint().setFakeBoldText(true);

          textstyle可設置的屬性有:

          5.文字過長顯示省略號或者跑馬燈效果

          android:maxEms="6" //限制顯示的字符長度android:singleLine="true" //單行顯示android:ellipsize="end"http://在結尾用省略號

          android:ellipsize設置當文字過長時,該控件該如何顯示。有如下值設置:

          • ”start”—–省略號顯示在開頭;

          • ”end”——省略號顯示在結尾;

          • ”middle”—-省略號顯示在中間;

          • ”marquee” ——以跑馬燈的方式顯示(動畫橫向移動)

          android:marqueeRepeatLimit 在ellipsize指定marquee的情況下,設置重復滾動的次數,當設置為marquee_forever時表示無限次。實現需要控件獲得焦點。

           <TextView android:marqueeRepeatLimit="marquee_forever" android:ellipsize="marquee" android:singleLine="true" android:focusableInTouchMode="true" android:focusable="true" android:text="我是胖先森我是胖先森我是胖先森我是胖先森我是胖先森" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView3" />

          效果圖

          6.TextView 設置行間距

          1、android:lineSpacingExtra 設置行間距,如”3dp”。

          2、android:lineSpacingMultiplier 設置行間距的倍數,如”1.2″。

          7.TextView 關于字體

          我們可以通過設置android:typeface屬性來控制字體,可以設置為normal, sans, serif, monospace四種。具體如下:

          代碼中可以通過setTypeface(Typeface)方法設置。但有時候我們的App可能需要使用特殊的字體,這時候怎么辦呢?可以通過如下代碼設置:

          Typeface mTypeFace = Typeface.createFromAsset(getAssets(), "kaiti.ttf");textview.setTypeface(mTypeFace);

          然后將我們的字體文件放到assets文件夾下。

          但是需要注意的是,不要大量使用這種自定義字體,因為自定義字體會消耗更多的性能。

          8.TextView支持的Html標簽

          Textview只支持部分的html標簽。具體如下:

          <a href="..."> //定義鏈接內容<b> //定義粗體文字 b 是blod的縮寫<big> //定義大字體的文字<blockquote> //引用塊標簽 <br> //定義換行<cite> //表示引用的URI<dfn> //定義標簽 dfn 是defining instance的縮寫<div align="..."><em> //強調標簽 em 是emphasis的縮寫<font size="..." color="..." face="..."><h1><h2><h3><h4><h5><h6><i> //定義斜體文字<img src="..."><p> // 段落標簽,里面可以加入文字,列表,表格等<small> //定義小字體的文字<strike> // 定義刪除線樣式的文字 不符合標準網頁設計的理念,不贊成使用. strike是strikethrough的縮寫<strong> //重點強調標簽<sub> //下標標簽 sub 是subscript的縮寫<sup> //上標標簽 sup 是superscript的縮寫<tt> //定義monospaced字體的文字 不贊成使用. 此標簽對中文沒意義 tt是teletype or monospaced text style的意思<u> //定義帶有下劃線的文字 u是underlined text style的意思

          9.TextView 顯示多種顏色的字

          Android支持html格式的字符串,通過調用Html.fromHtml(str)方法可以轉換html格式的字符串str。示例代碼如下:

          TextView textth = (TextView) findViewById(R.id.textth);String textStr1 = "<font color="\"#123569\"">如果有一天,</font>";String textStr2 = "<font color="\"#00ff00\"">我悄然離去</font>";textth.setText(Html.fromHtml(textStr1 + textStr2));

          10.TextView 字體加粗

          字體加粗還可以通過設置html格式字符串來實現

          String textStr1 = "<b>sdfa</b>";textth.setText(Html.fromHtml(textStr1));

          11.TextView 插入圖片

          插入圖片還可以用html字符串來實現。不過需要用到ImageGetter類來對圖片的src屬性進行轉換。

          代碼如下:

          package com.hanpang.textviewdemo;public class TextViewActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_text_view); String imgStr = "<b>sdfa</b><br><img src='"+R.drawable.abc+"'>"; Html.ImageGetter imageGetter = new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { int id = Integer.parseInt(source); Drawable draw = getResources().getDrawable(id); draw.setBounds(0, 0, 300, 200); return draw; } }; TextView tv = (TextView) findViewById(R.id.txt1); tv.append(Html.fromHtml(imgStr, imageGetter, null)); }}

          12.TextView 添加分割線

          <TextView android:layout_width="match_parent" android:layout_height="1dp" android:background="#000000" />

          extView屬性

          • android:autoLink

          設置是否當文本為URL鏈接/email/電話號碼/map時,文本顯示為可點擊的鏈接。可選值(none/web/email/phone/map/all)

          • android:autoText

          如果設置,將自動執行輸入值的拼寫糾正。此處無效果,在顯示輸入法并輸入的時候起作用。

          • android:bufferType

          指定getText()方式取得的文本類別。選項:

          1. Editable:類似于StringBuilder可追加字符,也就是說getText后可調用append方法設置文本內容。
          2. Spannable:則可在給定的字符區域使用樣式,參見這里1、這里2。
          • android:capitalize

          設置英文字母大寫類型。此處無效果,需要彈出輸入法才能看得到,參見EditView此屬性說明。

          • android:cursorVisible

          設定光標為顯示/隱藏,默認顯示。

          • android:digits

          設置允許輸入哪些字符。如“1234567890.+-*/% ()”

          • android:drawableBottom

          在text的下方輸出一個drawable,如圖片。如果指定一個顏色的話會把text的背景設為該顏色,并且同時和background使用時覆蓋后者。

          • android:drawableLeft

          在text的左邊輸出一個drawable,如圖片。

          • android:drawablePadding

          設置text與drawable(圖片)的間隔,與drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可設置為負數,單獨使用沒有效果。

          • android:drawableRight

          在text的右邊輸出一個drawable。

          • android:drawableTop

          在text的正上方輸出一個drawable。

          • android:editable

          設置是否可編輯。

          • android:editorExtras

          設置文本的額外的輸入數據。

          • android:ellipsize

          設置當文字過長時,該控件該如何顯示。有如下值設置:

          1. start—-省略號顯示在開頭;
          2. end—省略號顯示在結尾;
          3. middle—省略號顯示在中間;
          4. marquee—以跑馬燈的方式顯示(動畫橫向移動)
          • android:freezesText

          設置保存文本的內容以及光標的位置。

          • android:gravity

          設置文本位置,如設置成“center”,文本將居中顯示。

          • android:hintText

          為空時顯示的文字提示信息,可通過textColorHint設置提示信息的顏色。此屬性在 EditView中使用,但是這里也可以用。

          • android:imeOptions

          附加功能,設置右下角IME動作與編輯框相關的動作,如actionDone右下角將顯示一個“完成”,而不設置默認是一個回車符號。這個在EditView中有詳細說明,此處無用。

          • android:imeActionId

          設置IME動作ID。

          • android:imeActionLabel

          設置IME動作標簽。

          • android:includeFontPadding

          設置文本是否包含頂部和底部額外空白,默認為true。

          • android:inputMethod

          為文本指定輸入法,需要完全限定名(完整的包名)。例如:

          com.google.android.inputmethod.pinyin,但是這里報錯找不到。

          • android:inputType

          設置文本的類型,用于幫助輸入法顯示合適的鍵盤類型。在EditView中再詳細說明,這里無效果。

          • android:linksClickable

          設置鏈接是否點擊連接,即使設置了autoLink。

          • android:marqueeRepeatLimit

          在ellipsize指定marquee的情況下,設置重復滾動的次數,當設置為marquee_forever時表示無限次。

          • android:ems

          設置TextView的寬度為N個字符的寬度。這里測試為一個漢字字符寬度

          • android:maxEms

          設置TextView的寬度為最長為N個字符的寬度。與ems同時使用時覆蓋ems選項。

          • android:minEms

          設置TextView的寬度為最短為N個字符的寬度。與ems同時使用時覆蓋ems選項。

          • android:maxLength

          限制顯示的文本長度,超出部分不顯示。

          • android:lines

          設置文本的行數,設置兩行就顯示兩行,即使第二行沒有數據。

          • android:maxLines

          設置文本的最大顯示行數,與width或者layout_width結合使用,超出部分自動換行,超出行數將不顯示。

          • android:minLines

          設置文本的最小行數,與lines類似。

          • android:lineSpacingExtra

          設置行間距。

          • android:lineSpacingMultiplier

          設置行間距的倍數。如“1.2”

          • android:numeric

          如果被設置,該TextView有一個數字輸入法。此處無用,設置后唯一效果是TextView有點擊效果,此屬性在EdtiView將詳細說明。

          • android:password

          以小點”.”顯示文本

          • android:phoneNumber

          設置為電話號碼的輸入方式。

          • android:privateImeOptions

          設置輸入法選項,此處無用,在EditText將進一步討論。

          • android:scrollHorizontally

          設置文本超出TextView的寬度的情況下,是否出現橫拉條。

          • android:selectAllOnFocus

          如果文本是可選擇的,讓他獲取焦點而不是將光標移動為文本的開始位置或者末尾位置。 TextView中設置后無效果。

          • android:shadowColor

          指定文本陰影的顏色,需要與shadowRadius一起使用。

          • android:shadowDx

          設置陰影橫向坐標開始位置。

          • android:shadowDy

          設置陰影縱向坐標開始位置。

          • android:shadowRadius

          設置陰影的半徑。設置為0.1就變成字體的顏色了,一般設置為3.0的效果比較好。

          • android:singleLine

          設置單行顯示。如果和layout_width一起使用,當文本不能全部顯示時,后面用“…”來表示。如

          1. android:text="test_ singleLine "
          2. android:singleLine="true"
          3. android:layout_width="20dp"

          將只顯示“t…”。如果不設置singleLine或者設置為false,文本將自動換行

          • android:text

          設置顯示文本.

          • android:textAppearance

          設置文字外。如 “?android:attr/textAppearanceLargeInverse”這里引用的是系統自帶的一個外觀,?表示系統是否有這種外觀,否 則使用默認的外觀。可textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

          • android:textColor

          設置文本顏色

          • android:textColorHighlight

          被選中文字的底色,默認為藍色

          • android:textColorHint

          設置提示信息文字的顏色,默認為灰色。與hint一起使用。

          • android:textColorLink

          文字鏈接的顏色.

          • android:textScaleX

          設置文字之間間隔,默認為1.0f。

          • android:textSize

          設置文字大小,推薦度量單位”sp”,如”15sp”

          • android:textStyle

          設置字形[bold(粗體) 0, italic(斜體) 1, bolditalic(又粗又斜) 2] 可以設置一個或多個,用“|”隔開

          • android:typeface

          設置文本字體,必須是以下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字體) 3]

          • android:height

          設置文本區域的高度,支持度量單位:px(像素)/dp/sp/in/mm(毫米)

          • android:maxHeight

          設置文本區域的最大高度

          • android:minHeight

          設置文本區域的最小高度

          • android:width

          設置文本區域的寬度,支持度量單位:px(像素)/dp/sp/in/mm(毫米),與layout_width 的區別看這里。

          • android:maxWidth

          設置文本區域的最大寬度

          • android:minWidth

          設置文本區域的最小寬度

          (本文由沙海孤塵原創,歡迎關注,帶你一起長知識!)


          主站蜘蛛池模板: 亚洲日韩中文字幕一区| 高清在线一区二区| 久久无码AV一区二区三区| 日韩经典精品无码一区| 亚洲国产精品一区二区第一页免| 天码av无码一区二区三区四区 | 日本在线观看一区二区三区| 日韩一区二区久久久久久| 精品一区二区高清在线观看| 国内精品视频一区二区三区八戒| 国产精品综合一区二区| 国产精品 一区 在线| 亚洲av午夜福利精品一区| 亚洲国产AV无码一区二区三区 | 国产内射在线激情一区| eeuss鲁片一区二区三区| 精品久久一区二区| 国产精品亚洲产品一区二区三区| 无码av人妻一区二区三区四区| 成人精品视频一区二区三区| 美女视频一区二区| 亚洲午夜精品第一区二区8050| 精品视频午夜一区二区| 国产成人精品a视频一区| 国产凹凸在线一区二区| 色一乱一伦一区一直爽| 日本一区二区高清不卡| 免费一区二区三区在线视频| 99国产精品一区二区| 骚片AV蜜桃精品一区| 日韩亚洲一区二区三区| 精品国产a∨无码一区二区三区| 一区二区三区日韩精品| 日韩精品久久一区二区三区| 无码人妻精品一区二区三区久久久 | 国模丽丽啪啪一区二区| 无码中文字幕一区二区三区| 久久久久99人妻一区二区三区| 国产一区二区精品尤物| 久久精品一区二区免费看| 无码人妻精品一区二区三区99仓本|