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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

位掩码(BitMask)

發(fā)布時間:2025/3/12 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 位掩码(BitMask) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

位運算在實際開發(fā)中用得很少,主要原因還是它對于不熟悉的人不好讀不好懂不好計算,如果不經(jīng)常實踐會生疏。但它的優(yōu)點自然是計算快,代碼更少。在某些地方它的優(yōu)勢會更加明顯比如如下代碼(http://xxgblog.com/2013/09/15/Java-bitmask/):

[java] view plaincopy print?
  • public?class?NewPermission?{??
  • ????//?是否允許查詢,二進(jìn)制第1位,0表示否,1表示是??
  • ????public?static?final?int?ALLOW_SELECT?=?1?<<?0;?//?0001??
  • ??????
  • ????//?是否允許新增,二進(jìn)制第2位,0表示否,1表示是??
  • ????public?static?final?int?ALLOW_INSERT?=?1?<<?1;?//?0010??
  • ??????
  • ????//?是否允許修改,二進(jìn)制第3位,0表示否,1表示是??
  • ????public?static?final?int?ALLOW_UPDATE?=?1?<<?2;?//?0100??
  • ??????
  • ????//?是否允許刪除,二進(jìn)制第4位,0表示否,1表示是??
  • ????public?static?final?int?ALLOW_DELETE?=?1?<<?3;?//?1000??
  • ??????
  • ????//?存儲目前的權(quán)限狀態(tài)??
  • ????private?int?flag;??
  • ??
  • ????/**?
  • ?????*??重新設(shè)置權(quán)限?
  • ?????*/??
  • ????public?void?setPermission(int?permission)?{??
  • ????????flag?=?permission;??
  • ????}??
  • ??
  • ????/**?
  • ?????*??添加一項或多項權(quán)限?
  • ?????*/??
  • ????public?void?enable(int?permission)?{??
  • ????????flag?|=?permission;??
  • ????}??
  • ??????
  • ????/**?
  • ?????*??刪除一項或多項權(quán)限?
  • ?????*/??
  • ????public?void?disable(int?permission)?{??
  • ????????flag?&=?~permission;??
  • ????}??
  • ??????
  • ????/**?
  • ?????*??是否擁某些權(quán)限?
  • ?????*/??
  • ????public?boolean?isAllow(int?permission)?{??
  • ????????return?(flag?&?permission)?==?permission;??
  • ????}??
  • ??????
  • ????/**?
  • ?????*??是否禁用了某些權(quán)限?
  • ?????*/??
  • ????public?boolean?isNotAllow(int?permission)?{??
  • ????????return?(flag?&?permission)?==?0;??
  • ????}??
  • ??????
  • ????/**?
  • ?????*??是否僅僅擁有某些權(quán)限?
  • ?????*/??
  • ????public?boolean?isOnlyAllow(int?permission)?{??
  • ????????return?flag?==?permission;??
  • ????}??
  • }??
  • public class NewPermission {// 是否允許查詢,二進(jìn)制第1位,0表示否,1表示是public static final int ALLOW_SELECT = 1 << 0; // 0001// 是否允許新增,二進(jìn)制第2位,0表示否,1表示是public static final int ALLOW_INSERT = 1 << 1; // 0010// 是否允許修改,二進(jìn)制第3位,0表示否,1表示是public static final int ALLOW_UPDATE = 1 << 2; // 0100// 是否允許刪除,二進(jìn)制第4位,0表示否,1表示是public static final int ALLOW_DELETE = 1 << 3; // 1000// 存儲目前的權(quán)限狀態(tài)private int flag;/*** 重新設(shè)置權(quán)限*/public void setPermission(int permission) {flag = permission;}/*** 添加一項或多項權(quán)限*/public void enable(int permission) {flag |= permission;}/*** 刪除一項或多項權(quán)限*/public void disable(int permission) {flag &= ~permission;}/*** 是否擁某些權(quán)限*/public boolean isAllow(int permission) {return (flag & permission) == permission;}/*** 是否禁用了某些權(quán)限*/public boolean isNotAllow(int permission) {return (flag & permission) == 0;}/*** 是否僅僅擁有某些權(quán)限*/public boolean isOnlyAllow(int permission) {return flag == permission;} }

    業(yè)務(wù)上,權(quán)限可以有多個,通過普通方式實現(xiàn)上面的業(yè)務(wù)功能也不會太麻煩。但上面這種取巧的方式在Android的源碼中是不少的,可以說是隨處可見,比如EditText的InputType:

    [java] view plaincopy print?
  • /*?
  • ?*?Copyright?(C)?2008?The?Android?Open?Source?Project?
  • ?*?
  • ?*?Licensed?under?the?Apache?License,?Version?2.0?(the?"License");?
  • ?*?you?may?not?use?this?file?except?in?compliance?with?the?License.?
  • ?*?You?may?obtain?a?copy?of?the?License?at?
  • ?*?
  • ?*??????http://www.apache.org/licenses/LICENSE-2.0?
  • ?*?
  • ?*?Unless?required?by?applicable?law?or?agreed?to?in?writing,?software?
  • ?*?distributed?under?the?License?is?distributed?on?an?"AS?IS"?BASIS,?
  • ?*?WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND,?either?express?or?implied.?
  • ?*?See?the?License?for?the?specific?language?governing?permissions?and?
  • ?*?limitations?under?the?License.?
  • ?*/??
  • ??
  • package?android.text;??
  • ??
  • import?android.text.TextUtils;??
  • ??
  • /**?
  • ?*?Bit?definitions?for?an?integer?defining?the?basic?content?type?of?text?
  • ?*?held?in?an?{@link?Editable}?object.?Supported?classes?may?be?combined?
  • ?*?with?variations?and?flags?to?indicate?desired?behaviors.?
  • ?*?
  • ?*?<h3>Examples</h3>?
  • ?*?
  • ?*?<dl>?
  • ?*?<dt>A?password?field?with?with?the?password?visible?to?the?user:?
  • ?*?<dd>inputType?=?TYPE_CLASS_TEXT?|?
  • ?*?????TYPE_TEXT_VARIATION_VISIBLE_PASSWORD?
  • ?*?
  • ?*?<dt>A?multi-line?postal?address?with?automatic?capitalization:?
  • ?*?<dd>inputType?=?TYPE_CLASS_TEXT?|?
  • ?*?????TYPE_TEXT_VARIATION_POSTAL_ADDRESS?|?
  • ?*?????TYPE_TEXT_FLAG_MULTI_LINE?
  • ?*?
  • ?*?<dt>A?time?field:?
  • ?*?<dd>inputType?=?TYPE_CLASS_DATETIME?|?
  • ?*?????TYPE_DATETIME_VARIATION_TIME?
  • ?*?</dl>?
  • ?*/??
  • public?interface?InputType?{??
  • ????/**?
  • ?????*?Mask?of?bits?that?determine?the?overall?class?
  • ?????*?of?text?being?given.??Currently?supported?classes?are:?
  • ?????*?{@link?#TYPE_CLASS_TEXT},?{@link?#TYPE_CLASS_NUMBER},?
  • ?????*?{@link?#TYPE_CLASS_PHONE},?{@link?#TYPE_CLASS_DATETIME}.?
  • ?????*?<p>IME?authors:?If?the?class?is?not?one?you?
  • ?????*?understand,?assume?{@link?#TYPE_CLASS_TEXT}?with?NO?variation?
  • ?????*?or?flags.<p>?
  • ?????*/??
  • ????public?static?final?int?TYPE_MASK_CLASS?=?0x0000000f;??
  • ??????
  • ????/**?
  • ?????*?Mask?of?bits?that?determine?the?variation?of?
  • ?????*?the?base?content?class.?
  • ?????*/??
  • ????public?static?final?int?TYPE_MASK_VARIATION?=?0x00000ff0;??
  • ??????
  • ????/**?
  • ?????*?Mask?of?bits?that?provide?addition?bit?flags?
  • ?????*?of?options.?
  • ?????*/??
  • ????public?static?final?int?TYPE_MASK_FLAGS?=?0x00fff000;??
  • ??????
  • ????/**?
  • ?????*?Special?content?type?for?when?no?explicit?type?has?been?specified.?
  • ?????*?This?should?be?interpreted?to?mean?that?the?target?input?connection?
  • ?????*?is?not?rich,?it?can?not?process?and?show?things?like?candidate?text?nor?
  • ?????*?retrieve?the?current?text,?so?the?input?method?will?need?to?run?in?a?
  • ?????*?limited?"generate?key?events"?mode,?if?it?supports?it.?Note?that?some?
  • ?????*?input?methods?may?not?support?it,?for?example?a?voice-based?input?
  • ?????*?method?will?likely?not?be?able?to?generate?key?events?even?if?this?
  • ?????*?flag?is?set.?
  • ?????*/??
  • ????public?static?final?int?TYPE_NULL?=?0x00000000;??
  • ??????
  • ????//?----------------------------------------------------------------------??
  • ????//?----------------------------------------------------------------------??
  • ????//?----------------------------------------------------------------------??
  • ??????
  • ????/**?
  • ?????*?Class?for?normal?text.??This?class?supports?the?following?flags?(only?
  • ?????*?one?of?which?should?be?set):?
  • ?????*?{@link?#TYPE_TEXT_FLAG_CAP_CHARACTERS},?
  • ?????*?{@link?#TYPE_TEXT_FLAG_CAP_WORDS},?and.?
  • ?????*?{@link?#TYPE_TEXT_FLAG_CAP_SENTENCES}.??It?also?supports?the?
  • ?????*?following?variations:?
  • ?????*?{@link?#TYPE_TEXT_VARIATION_NORMAL},?and?
  • ?????*?{@link?#TYPE_TEXT_VARIATION_URI}.??If?you?do?not?recognize?the?
  • ?????*?variation,?normal?should?be?assumed.?
  • ?????*/??
  • ????public?static?final?int?TYPE_CLASS_TEXT?=?0x00000001;??
  • ??????
  • ????/**?
  • ?????*?Flag?for?{@link?#TYPE_CLASS_TEXT}:?capitalize?all?characters.??Overrides?
  • ?????*?{@link?#TYPE_TEXT_FLAG_CAP_WORDS}?and?
  • ?????*?{@link?#TYPE_TEXT_FLAG_CAP_SENTENCES}.??This?value?is?explicitly?defined?
  • ?????*?to?be?the?same?as?{@link?TextUtils#CAP_MODE_CHARACTERS}.?Of?course,?
  • ?????*?this?only?affects?languages?where?there?are?upper-case?and?lower-case?letters.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_FLAG_CAP_CHARACTERS?=?0x00001000;??
  • ??????
  • ????/**?
  • ?????*?Flag?for?{@link?#TYPE_CLASS_TEXT}:?capitalize?the?first?character?of?
  • ?????*?every?word.??Overrides?{@link?#TYPE_TEXT_FLAG_CAP_SENTENCES}.??This?
  • ?????*?value?is?explicitly?defined?
  • ?????*?to?be?the?same?as?{@link?TextUtils#CAP_MODE_WORDS}.?Of?course,?
  • ?????*?this?only?affects?languages?where?there?are?upper-case?and?lower-case?letters.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_FLAG_CAP_WORDS?=?0x00002000;??
  • ??????
  • ????/**?
  • ?????*?Flag?for?{@link?#TYPE_CLASS_TEXT}:?capitalize?the?first?character?of?
  • ?????*?each?sentence.??This?value?is?explicitly?defined?
  • ?????*?to?be?the?same?as?{@link?TextUtils#CAP_MODE_SENTENCES}.?For?example?
  • ?????*?in?English?it?means?to?capitalize?after?a?period?and?a?space?(note?that?other?
  • ?????*?languages?may?have?different?characters?for?period,?or?not?use?spaces,?
  • ?????*?or?use?different?grammatical?rules).?Of?course,?
  • ?????*?this?only?affects?languages?where?there?are?upper-case?and?lower-case?letters.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_FLAG_CAP_SENTENCES?=?0x00004000;??
  • ??????
  • ????/**?
  • ?????*?Flag?for?{@link?#TYPE_CLASS_TEXT}:?the?user?is?entering?free-form?
  • ?????*?text?that?should?have?auto-correction?applied?to?it.?Without?this?flag,?
  • ?????*?the?IME?will?not?try?to?correct?typos.?You?should?always?set?this?flag?
  • ?????*?unless?you?really?expect?users?to?type?non-words?in?this?field,?for?
  • ?????*?example?to?choose?a?name?for?a?character?in?a?game.?
  • ?????*?Contrast?this?with?{@link?#TYPE_TEXT_FLAG_AUTO_COMPLETE}?and?
  • ?????*?{@link?#TYPE_TEXT_FLAG_NO_SUGGESTIONS}:?
  • ?????*?{@code?TYPE_TEXT_FLAG_AUTO_CORRECT}?means?that?the?IME?will?try?to?
  • ?????*?auto-correct?typos?as?the?user?is?typing,?but?does?not?define?whether?
  • ?????*?the?IME?offers?an?interface?to?show?suggestions.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_FLAG_AUTO_CORRECT?=?0x00008000;??
  • ??????
  • ????/**?
  • ?????*?Flag?for?{@link?#TYPE_CLASS_TEXT}:?the?text?editor?(which?means?
  • ?????*?the?application)?is?performing?auto-completion?of?the?text?being?entered?
  • ?????*?based?on?its?own?semantics,?which?it?will?present?to?the?user?as?they?type.?
  • ?????*?This?generally?means?that?the?input?method?should?not?be?showing?
  • ?????*?candidates?itself,?but?can?expect?the?editor?to?supply?its?own?
  • ?????*?completions/candidates?from?
  • ?????*?{@link?android.view.inputmethod.InputMethodSession#displayCompletions?
  • ?????*?InputMethodSession.displayCompletions()}?as?a?result?of?the?editor?calling?
  • ?????*?{@link?android.view.inputmethod.InputMethodManager#displayCompletions?
  • ?????*?InputMethodManager.displayCompletions()}.?
  • ?????*?Note?the?contrast?with?{@link?#TYPE_TEXT_FLAG_AUTO_CORRECT}?and?
  • ?????*?{@link?#TYPE_TEXT_FLAG_NO_SUGGESTIONS}:?
  • ?????*?{@code?TYPE_TEXT_FLAG_AUTO_COMPLETE}?means?the?editor?should?show?an?
  • ?????*?interface?for?displaying?suggestions,?but?instead?of?supplying?its?own?
  • ?????*?it?will?rely?on?the?Editor?to?pass?completions/corrections.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_FLAG_AUTO_COMPLETE?=?0x00010000;??
  • ??????
  • ????/**?
  • ?????*?Flag?for?{@link?#TYPE_CLASS_TEXT}:?multiple?lines?of?text?can?be?
  • ?????*?entered?into?the?field.??If?this?flag?is?not?set,?the?text?field??
  • ?????*?will?be?constrained?to?a?single?line.?The?IME?may?also?choose?not?to?
  • ?????*?display?an?enter?key?when?this?flag?is?not?set,?as?there?should?be?no?
  • ?????*?need?to?create?new?lines.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_FLAG_MULTI_LINE?=?0x00020000;??
  • ??????
  • ????/**?
  • ?????*?Flag?for?{@link?#TYPE_CLASS_TEXT}:?the?regular?text?view?associated?
  • ?????*?with?this?should?not?be?multi-line,?but?when?a?fullscreen?input?method?
  • ?????*?is?providing?text?it?should?use?multiple?lines?if?it?can.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_FLAG_IME_MULTI_LINE?=?0x00040000;??
  • ??????
  • ????/**?
  • ?????*?Flag?for?{@link?#TYPE_CLASS_TEXT}:?the?input?method?does?not?need?to?
  • ?????*?display?any?dictionary-based?candidates.?This?is?useful?for?text?views?that?
  • ?????*?do?not?contain?words?from?the?language?and?do?not?benefit?from?any?
  • ?????*?dictionary-based?completions?or?corrections.?It?overrides?the?
  • ?????*?{@link?#TYPE_TEXT_FLAG_AUTO_CORRECT}?value?when?set.?
  • ?????*?Please?avoid?using?this?unless?you?are?certain?this?is?what?you?want.?
  • ?????*?Many?input?methods?need?suggestions?to?work?well,?for?example?the?ones?
  • ?????*?based?on?gesture?typing.?Consider?clearing?
  • ?????*?{@link?#TYPE_TEXT_FLAG_AUTO_CORRECT}?instead?if?you?just?do?not?
  • ?????*?want?the?IME?to?correct?typos.?
  • ?????*?Note?the?contrast?with?{@link?#TYPE_TEXT_FLAG_AUTO_CORRECT}?and?
  • ?????*?{@link?#TYPE_TEXT_FLAG_AUTO_COMPLETE}:?
  • ?????*?{@code?TYPE_TEXT_FLAG_NO_SUGGESTIONS}?means?the?IME?should?never?
  • ?????*?show?an?interface?to?display?suggestions.?Most?IMEs?will?also?take?this?to?
  • ?????*?mean?they?should?not?try?to?auto-correct?what?the?user?is?typing.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_FLAG_NO_SUGGESTIONS?=?0x00080000;??
  • ??
  • ????//?----------------------------------------------------------------------??
  • ??????
  • ????/**?
  • ?????*?Default?variation?of?{@link?#TYPE_CLASS_TEXT}:?plain?old?normal?text.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_NORMAL?=?0x00000000;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?a?URI.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_URI?=?0x00000010;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?an?e-mail?address.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_EMAIL_ADDRESS?=?0x00000020;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?the?subject?line?of?
  • ?????*?an?e-mail.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_EMAIL_SUBJECT?=?0x00000030;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?a?short,?possibly?informal?
  • ?????*?message?such?as?an?instant?message?or?a?text?message.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_SHORT_MESSAGE?=?0x00000040;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?the?content?of?a?long,?possibly??
  • ?????*?formal?message?such?as?the?body?of?an?e-mail.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_LONG_MESSAGE?=?0x00000050;??
  • ??
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?the?name?of?a?person.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_PERSON_NAME?=?0x00000060;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?a?postal?mailing?address.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_POSTAL_ADDRESS?=?0x00000070;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?a?password.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_PASSWORD?=?0x00000080;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?a?password,?which?should?
  • ?????*?be?visible?to?the?user.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_VISIBLE_PASSWORD?=?0x00000090;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?text?inside?of?a?web?form.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_WEB_EDIT_TEXT?=?0x000000a0;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?text?to?filter?contents?
  • ?????*?of?a?list?etc.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_FILTER?=?0x000000b0;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?text?for?phonetic?
  • ?????*?pronunciation,?such?as?a?phonetic?name?field?in?contacts.?This?is?mostly?
  • ?????*?useful?for?languages?where?one?spelling?may?have?several?phonetic?
  • ?????*?readings,?like?Japanese.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_PHONETIC?=?0x000000c0;??
  • ??????
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?e-mail?address?inside?
  • ?????*?of?a?web?form.??This?was?added?in?
  • ?????*?{@link?android.os.Build.VERSION_CODES#HONEYCOMB}.??An?IME?must?target?
  • ?????*?this?API?version?or?later?to?see?this?input?type;?if?it?doesn't,?a?request?
  • ?????*?for?this?type?will?be?seen?as?{@link?#TYPE_TEXT_VARIATION_EMAIL_ADDRESS}?
  • ?????*?when?passed?through?{@link?android.view.inputmethod.EditorInfo#makeCompatible(int)?
  • ?????*?EditorInfo.makeCompatible(int)}.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS?=?0x000000d0;??
  • ??
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_TEXT}:?entering?password?inside?
  • ?????*?of?a?web?form.??This?was?added?in?
  • ?????*?{@link?android.os.Build.VERSION_CODES#HONEYCOMB}.??An?IME?must?target?
  • ?????*?this?API?version?or?later?to?see?this?input?type;?if?it?doesn't,?a?request?
  • ?????*?for?this?type?will?be?seen?as?{@link?#TYPE_TEXT_VARIATION_PASSWORD}?
  • ?????*?when?passed?through?{@link?android.view.inputmethod.EditorInfo#makeCompatible(int)?
  • ?????*?EditorInfo.makeCompatible(int)}.?
  • ?????*/??
  • ????public?static?final?int?TYPE_TEXT_VARIATION_WEB_PASSWORD?=?0x000000e0;??
  • ??
  • ????//?----------------------------------------------------------------------??
  • ????//?----------------------------------------------------------------------??
  • ????//?----------------------------------------------------------------------??
  • ??????
  • ????/**?
  • ?????*?Class?for?numeric?text.??This?class?supports?the?following?flags:?
  • ?????*?{@link?#TYPE_NUMBER_FLAG_SIGNED}?and?
  • ?????*?{@link?#TYPE_NUMBER_FLAG_DECIMAL}.??It?also?supports?the?following?
  • ?????*?variations:?{@link?#TYPE_NUMBER_VARIATION_NORMAL}?and?
  • ?????*?{@link?#TYPE_NUMBER_VARIATION_PASSWORD}.?
  • ?????*?<p>IME?authors:?If?you?do?not?recognize?
  • ?????*?the?variation,?normal?should?be?assumed.</p>?
  • ?????*/??
  • ????public?static?final?int?TYPE_CLASS_NUMBER?=?0x00000002;??
  • ??????
  • ????/**?
  • ?????*?Flag?of?{@link?#TYPE_CLASS_NUMBER}:?the?number?is?signed,?allowing?
  • ?????*?a?positive?or?negative?sign?at?the?start.?
  • ?????*/??
  • ????public?static?final?int?TYPE_NUMBER_FLAG_SIGNED?=?0x00001000;??
  • ??????
  • ????/**?
  • ?????*?Flag?of?{@link?#TYPE_CLASS_NUMBER}:?the?number?is?decimal,?allowing?
  • ?????*?a?decimal?point?to?provide?fractional?values.?
  • ?????*/??
  • ????public?static?final?int?TYPE_NUMBER_FLAG_DECIMAL?=?0x00002000;??
  • ??????
  • ????//?----------------------------------------------------------------------??
  • ??
  • ????/**?
  • ?????*?Default?variation?of?{@link?#TYPE_CLASS_NUMBER}:?plain?normal?
  • ?????*?numeric?text.??This?was?added?in?
  • ?????*?{@link?android.os.Build.VERSION_CODES#HONEYCOMB}.??An?IME?must?target?
  • ?????*?this?API?version?or?later?to?see?this?input?type;?if?it?doesn't,?a?request?
  • ?????*?for?this?type?will?be?dropped?when?passed?through?
  • ?????*?{@link?android.view.inputmethod.EditorInfo#makeCompatible(int)?
  • ?????*?EditorInfo.makeCompatible(int)}.?
  • ?????*/??
  • ????public?static?final?int?TYPE_NUMBER_VARIATION_NORMAL?=?0x00000000;??
  • ??
  • ????/**?
  • ?????*?Variation?of?{@link?#TYPE_CLASS_NUMBER}:?entering?a?numeric?password.?
  • ?????*?This?was?added?in?{@link?android.os.Build.VERSION_CODES#HONEYCOMB}.??An?
  • ?????*?IME?must?target?this?API?version?or?later?to?see?this?input?type;?if?it?
  • ?????*?doesn't,?a?request?for?this?type?will?be?dropped?when?passed?
  • ?????*?through?{@link?android.view.inputmethod.EditorInfo#makeCompatible(int)?
  • ?????*?EditorInfo.makeCompatible(int)}.?
  • ?????*/??
  • ????public?static?final?int?TYPE_NUMBER_VARIATION_PASSWORD?=?0x00000010;??
  • ??
  • ????//?----------------------------------------------------------------------??
  • ????//?----------------------------------------------------------------------??
  • ????//?----------------------------------------------------------------------??
  • ??????
  • ????/**?
  • ?????*?Class?for?a?phone?number.??This?class?currently?supports?no?variations?
  • ?????*?or?flags.?
  • ?????*/??
  • ????public?static?final?int?TYPE_CLASS_PHONE?=?0x00000003;??
  • ??????
  • ????//?----------------------------------------------------------------------??
  • ????//?----------------------------------------------------------------------??
  • ????//?----------------------------------------------------------------------??
  • ??????
  • ????/**?
  • ?????*?Class?for?dates?and?times.??It?supports?the?
  • ?????*?following?variations:?
  • ?????*?{@link?#TYPE_DATETIME_VARIATION_NORMAL}?
  • ?????*?{@link?#TYPE_DATETIME_VARIATION_DATE},?and?
  • ?????*?{@link?#TYPE_DATETIME_VARIATION_TIME}.?
  • ?????*/??
  • ????public?static?final?int?TYPE_CLASS_DATETIME?=?0x00000004;??
  • ??????
  • ????/**?
  • ?????*?Default?variation?of?{@link?#TYPE_CLASS_DATETIME}:?allows?entering?
  • ?????*?both?a?date?and?time.?
  • ?????*/??
  • ????public?static?final?int?TYPE_DATETIME_VARIATION_NORMAL?=?0x00000000;??
  • ??????
  • ????/**?
  • ?????*?Default?variation?of?{@link?#TYPE_CLASS_DATETIME}:?allows?entering?
  • ?????*?only?a?date.?
  • ?????*/??
  • ????public?static?final?int?TYPE_DATETIME_VARIATION_DATE?=?0x00000010;??
  • ??????
  • ????/**?
  • ?????*?Default?variation?of?{@link?#TYPE_CLASS_DATETIME}:?allows?entering?
  • ?????*?only?a?time.?
  • ?????*/??
  • ????public?static?final?int?TYPE_DATETIME_VARIATION_TIME?=?0x00000020;??
  • }??
  • /** Copyright (C) 2008 The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package android.text;import android.text.TextUtils;/*** Bit definitions for an integer defining the basic content type of text* held in an {@link Editable} object. Supported classes may be combined* with variations and flags to indicate desired behaviors.** <h3>Examples</h3>** <dl>* <dt>A password field with with the password visible to the user:* <dd>inputType = TYPE_CLASS_TEXT |* TYPE_TEXT_VARIATION_VISIBLE_PASSWORD** <dt>A multi-line postal address with automatic capitalization:* <dd>inputType = TYPE_CLASS_TEXT |* TYPE_TEXT_VARIATION_POSTAL_ADDRESS |* TYPE_TEXT_FLAG_MULTI_LINE** <dt>A time field:* <dd>inputType = TYPE_CLASS_DATETIME |* TYPE_DATETIME_VARIATION_TIME* </dl>*/ public interface InputType {/*** Mask of bits that determine the overall class* of text being given. Currently supported classes are:* {@link #TYPE_CLASS_TEXT}, {@link #TYPE_CLASS_NUMBER},* {@link #TYPE_CLASS_PHONE}, {@link #TYPE_CLASS_DATETIME}.* <p>IME authors: If the class is not one you* understand, assume {@link #TYPE_CLASS_TEXT} with NO variation* or flags.<p>*/public static final int TYPE_MASK_CLASS = 0x0000000f;/*** Mask of bits that determine the variation of* the base content class.*/public static final int TYPE_MASK_VARIATION = 0x00000ff0;/*** Mask of bits that provide addition bit flags* of options.*/public static final int TYPE_MASK_FLAGS = 0x00fff000;/*** Special content type for when no explicit type has been specified.* This should be interpreted to mean that the target input connection* is not rich, it can not process and show things like candidate text nor* retrieve the current text, so the input method will need to run in a* limited "generate key events" mode, if it supports it. Note that some* input methods may not support it, for example a voice-based input* method will likely not be able to generate key events even if this* flag is set.*/public static final int TYPE_NULL = 0x00000000;// ----------------------------------------------------------------------// ----------------------------------------------------------------------// ----------------------------------------------------------------------/*** Class for normal text. This class supports the following flags (only* one of which should be set):* {@link #TYPE_TEXT_FLAG_CAP_CHARACTERS},* {@link #TYPE_TEXT_FLAG_CAP_WORDS}, and.* {@link #TYPE_TEXT_FLAG_CAP_SENTENCES}. It also supports the* following variations:* {@link #TYPE_TEXT_VARIATION_NORMAL}, and* {@link #TYPE_TEXT_VARIATION_URI}. If you do not recognize the* variation, normal should be assumed.*/public static final int TYPE_CLASS_TEXT = 0x00000001;/*** Flag for {@link #TYPE_CLASS_TEXT}: capitalize all characters. Overrides* {@link #TYPE_TEXT_FLAG_CAP_WORDS} and* {@link #TYPE_TEXT_FLAG_CAP_SENTENCES}. This value is explicitly defined* to be the same as {@link TextUtils#CAP_MODE_CHARACTERS}. Of course,* this only affects languages where there are upper-case and lower-case letters.*/public static final int TYPE_TEXT_FLAG_CAP_CHARACTERS = 0x00001000;/*** Flag for {@link #TYPE_CLASS_TEXT}: capitalize the first character of* every word. Overrides {@link #TYPE_TEXT_FLAG_CAP_SENTENCES}. This* value is explicitly defined* to be the same as {@link TextUtils#CAP_MODE_WORDS}. Of course,* this only affects languages where there are upper-case and lower-case letters.*/public static final int TYPE_TEXT_FLAG_CAP_WORDS = 0x00002000;/*** Flag for {@link #TYPE_CLASS_TEXT}: capitalize the first character of* each sentence. This value is explicitly defined* to be the same as {@link TextUtils#CAP_MODE_SENTENCES}. For example* in English it means to capitalize after a period and a space (note that other* languages may have different characters for period, or not use spaces,* or use different grammatical rules). Of course,* this only affects languages where there are upper-case and lower-case letters.*/public static final int TYPE_TEXT_FLAG_CAP_SENTENCES = 0x00004000;/*** Flag for {@link #TYPE_CLASS_TEXT}: the user is entering free-form* text that should have auto-correction applied to it. Without this flag,* the IME will not try to correct typos. You should always set this flag* unless you really expect users to type non-words in this field, for* example to choose a name for a character in a game.* Contrast this with {@link #TYPE_TEXT_FLAG_AUTO_COMPLETE} and* {@link #TYPE_TEXT_FLAG_NO_SUGGESTIONS}:* {@code TYPE_TEXT_FLAG_AUTO_CORRECT} means that the IME will try to* auto-correct typos as the user is typing, but does not define whether* the IME offers an interface to show suggestions.*/public static final int TYPE_TEXT_FLAG_AUTO_CORRECT = 0x00008000;/*** Flag for {@link #TYPE_CLASS_TEXT}: the text editor (which means* the application) is performing auto-completion of the text being entered* based on its own semantics, which it will present to the user as they type.* This generally means that the input method should not be showing* candidates itself, but can expect the editor to supply its own* completions/candidates from* {@link android.view.inputmethod.InputMethodSession#displayCompletions* InputMethodSession.displayCompletions()} as a result of the editor calling* {@link android.view.inputmethod.InputMethodManager#displayCompletions* InputMethodManager.displayCompletions()}.* Note the contrast with {@link #TYPE_TEXT_FLAG_AUTO_CORRECT} and* {@link #TYPE_TEXT_FLAG_NO_SUGGESTIONS}:* {@code TYPE_TEXT_FLAG_AUTO_COMPLETE} means the editor should show an* interface for displaying suggestions, but instead of supplying its own* it will rely on the Editor to pass completions/corrections.*/public static final int TYPE_TEXT_FLAG_AUTO_COMPLETE = 0x00010000;/*** Flag for {@link #TYPE_CLASS_TEXT}: multiple lines of text can be* entered into the field. If this flag is not set, the text field * will be constrained to a single line. The IME may also choose not to* display an enter key when this flag is not set, as there should be no* need to create new lines.*/public static final int TYPE_TEXT_FLAG_MULTI_LINE = 0x00020000;/*** Flag for {@link #TYPE_CLASS_TEXT}: the regular text view associated* with this should not be multi-line, but when a fullscreen input method* is providing text it should use multiple lines if it can.*/public static final int TYPE_TEXT_FLAG_IME_MULTI_LINE = 0x00040000;/*** Flag for {@link #TYPE_CLASS_TEXT}: the input method does not need to* display any dictionary-based candidates. This is useful for text views that* do not contain words from the language and do not benefit from any* dictionary-based completions or corrections. It overrides the* {@link #TYPE_TEXT_FLAG_AUTO_CORRECT} value when set.* Please avoid using this unless you are certain this is what you want.* Many input methods need suggestions to work well, for example the ones* based on gesture typing. Consider clearing* {@link #TYPE_TEXT_FLAG_AUTO_CORRECT} instead if you just do not* want the IME to correct typos.* Note the contrast with {@link #TYPE_TEXT_FLAG_AUTO_CORRECT} and* {@link #TYPE_TEXT_FLAG_AUTO_COMPLETE}:* {@code TYPE_TEXT_FLAG_NO_SUGGESTIONS} means the IME should never* show an interface to display suggestions. Most IMEs will also take this to* mean they should not try to auto-correct what the user is typing.*/public static final int TYPE_TEXT_FLAG_NO_SUGGESTIONS = 0x00080000;// ----------------------------------------------------------------------/*** Default variation of {@link #TYPE_CLASS_TEXT}: plain old normal text.*/public static final int TYPE_TEXT_VARIATION_NORMAL = 0x00000000;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering a URI.*/public static final int TYPE_TEXT_VARIATION_URI = 0x00000010;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering an e-mail address.*/public static final int TYPE_TEXT_VARIATION_EMAIL_ADDRESS = 0x00000020;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering the subject line of* an e-mail.*/public static final int TYPE_TEXT_VARIATION_EMAIL_SUBJECT = 0x00000030;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering a short, possibly informal* message such as an instant message or a text message.*/public static final int TYPE_TEXT_VARIATION_SHORT_MESSAGE = 0x00000040;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering the content of a long, possibly * formal message such as the body of an e-mail.*/public static final int TYPE_TEXT_VARIATION_LONG_MESSAGE = 0x00000050;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering the name of a person.*/public static final int TYPE_TEXT_VARIATION_PERSON_NAME = 0x00000060;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering a postal mailing address.*/public static final int TYPE_TEXT_VARIATION_POSTAL_ADDRESS = 0x00000070;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering a password.*/public static final int TYPE_TEXT_VARIATION_PASSWORD = 0x00000080;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering a password, which should* be visible to the user.*/public static final int TYPE_TEXT_VARIATION_VISIBLE_PASSWORD = 0x00000090;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering text inside of a web form.*/public static final int TYPE_TEXT_VARIATION_WEB_EDIT_TEXT = 0x000000a0;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering text to filter contents* of a list etc.*/public static final int TYPE_TEXT_VARIATION_FILTER = 0x000000b0;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering text for phonetic* pronunciation, such as a phonetic name field in contacts. This is mostly* useful for languages where one spelling may have several phonetic* readings, like Japanese.*/public static final int TYPE_TEXT_VARIATION_PHONETIC = 0x000000c0;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering e-mail address inside* of a web form. This was added in* {@link android.os.Build.VERSION_CODES#HONEYCOMB}. An IME must target* this API version or later to see this input type; if it doesn't, a request* for this type will be seen as {@link #TYPE_TEXT_VARIATION_EMAIL_ADDRESS}* when passed through {@link android.view.inputmethod.EditorInfo#makeCompatible(int)* EditorInfo.makeCompatible(int)}.*/public static final int TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS = 0x000000d0;/*** Variation of {@link #TYPE_CLASS_TEXT}: entering password inside* of a web form. This was added in* {@link android.os.Build.VERSION_CODES#HONEYCOMB}. An IME must target* this API version or later to see this input type; if it doesn't, a request* for this type will be seen as {@link #TYPE_TEXT_VARIATION_PASSWORD}* when passed through {@link android.view.inputmethod.EditorInfo#makeCompatible(int)* EditorInfo.makeCompatible(int)}.*/public static final int TYPE_TEXT_VARIATION_WEB_PASSWORD = 0x000000e0;// ----------------------------------------------------------------------// ----------------------------------------------------------------------// ----------------------------------------------------------------------/*** Class for numeric text. This class supports the following flags:* {@link #TYPE_NUMBER_FLAG_SIGNED} and* {@link #TYPE_NUMBER_FLAG_DECIMAL}. It also supports the following* variations: {@link #TYPE_NUMBER_VARIATION_NORMAL} and* {@link #TYPE_NUMBER_VARIATION_PASSWORD}.* <p>IME authors: If you do not recognize* the variation, normal should be assumed.</p>*/public static final int TYPE_CLASS_NUMBER = 0x00000002;/*** Flag of {@link #TYPE_CLASS_NUMBER}: the number is signed, allowing* a positive or negative sign at the start.*/public static final int TYPE_NUMBER_FLAG_SIGNED = 0x00001000;/*** Flag of {@link #TYPE_CLASS_NUMBER}: the number is decimal, allowing* a decimal point to provide fractional values.*/public static final int TYPE_NUMBER_FLAG_DECIMAL = 0x00002000;// ----------------------------------------------------------------------/*** Default variation of {@link #TYPE_CLASS_NUMBER}: plain normal* numeric text. This was added in* {@link android.os.Build.VERSION_CODES#HONEYCOMB}. An IME must target* this API version or later to see this input type; if it doesn't, a request* for this type will be dropped when passed through* {@link android.view.inputmethod.EditorInfo#makeCompatible(int)* EditorInfo.makeCompatible(int)}.*/public static final int TYPE_NUMBER_VARIATION_NORMAL = 0x00000000;/*** Variation of {@link #TYPE_CLASS_NUMBER}: entering a numeric password.* This was added in {@link android.os.Build.VERSION_CODES#HONEYCOMB}. An* IME must target this API version or later to see this input type; if it* doesn't, a request for this type will be dropped when passed* through {@link android.view.inputmethod.EditorInfo#makeCompatible(int)* EditorInfo.makeCompatible(int)}.*/public static final int TYPE_NUMBER_VARIATION_PASSWORD = 0x00000010;// ----------------------------------------------------------------------// ----------------------------------------------------------------------// ----------------------------------------------------------------------/*** Class for a phone number. This class currently supports no variations* or flags.*/public static final int TYPE_CLASS_PHONE = 0x00000003;// ----------------------------------------------------------------------// ----------------------------------------------------------------------// ----------------------------------------------------------------------/*** Class for dates and times. It supports the* following variations:* {@link #TYPE_DATETIME_VARIATION_NORMAL}* {@link #TYPE_DATETIME_VARIATION_DATE}, and* {@link #TYPE_DATETIME_VARIATION_TIME}.*/public static final int TYPE_CLASS_DATETIME = 0x00000004;/*** Default variation of {@link #TYPE_CLASS_DATETIME}: allows entering* both a date and time.*/public static final int TYPE_DATETIME_VARIATION_NORMAL = 0x00000000;/*** Default variation of {@link #TYPE_CLASS_DATETIME}: allows entering* only a date.*/public static final int TYPE_DATETIME_VARIATION_DATE = 0x00000010;/*** Default variation of {@link #TYPE_CLASS_DATETIME}: allows entering* only a time.*/public static final int TYPE_DATETIME_VARIATION_TIME = 0x00000020; }

    由于位掩碼方式又一個很大的問題,就是類型安全,如果不對類型安全控制后果會難以想象,因此枚舉被用進(jìn)去,以對參數(shù)類型進(jìn)行控制,源碼當(dāng)中使用的是@IntDef,而EnumSet作為新的實現(xiàn)形式,在任何方面都比位掩碼方式差不多或者更好,可讀性,性能,以及類型安全等。權(quán)限邏輯如下:


    [java] view plaincopy print?
  • public?class?NewPermission2?{??
  • ??
  • ??private?EnumSet<Permission>?permissions?=?EnumSet.noneOf(Permission.class);??
  • ??
  • ??private?enum?Permission?{??
  • ????SELECT,?INSERT,?UPDATE,?DELETE;??
  • ??
  • ????public?static?final?EnumSet<Permission>?ALL_PERMISSIONS?=?EnumSet.allOf(Permission.class);??
  • ????public?static?final?EnumSet<Permission>?VIP_PERMISSIONS?=??
  • ????????EnumSet.range(Permission.SELECT,?Permission.UPDATE);??
  • ??}??
  • ??
  • ??/**?
  • ???*?重新設(shè)置權(quán)限?
  • ???*/??
  • ??public?void?setPermission(EnumSet<Permission>?s)?{??
  • ????this.permissions.clear();??
  • ????this.permissions?=?s;??
  • ??}??
  • ??
  • ??/**?
  • ???*?刪除一項或多項權(quán)限?
  • ???*/??
  • ??public?void?disable(Permission?permission)?{??
  • ????permissions.remove(permission);??
  • ??}??
  • ??
  • ??/**?
  • ???*?是否擁某些權(quán)限?
  • ???*/??
  • ??public?boolean?isAllow(Permission?s)?{??
  • ????return?permissions.contains(s);??
  • ??}??
  • ??
  • ??/**?
  • ???*?是否是游客?
  • ???*/??
  • ??public?boolean?isVip(Permission?s)?{??
  • ????return?Permission.VIP_PERMISSIONS.contains(s);??
  • ??}??
  • }??
  • public class NewPermission2 {private EnumSet<Permission> permissions = EnumSet.noneOf(Permission.class);private enum Permission {SELECT, INSERT, UPDATE, DELETE;public static final EnumSet<Permission> ALL_PERMISSIONS = EnumSet.allOf(Permission.class);public static final EnumSet<Permission> VIP_PERMISSIONS =EnumSet.range(Permission.SELECT, Permission.UPDATE);}/*** 重新設(shè)置權(quán)限*/public void setPermission(EnumSet<Permission> s) {this.permissions.clear();this.permissions = s;}/*** 刪除一項或多項權(quán)限*/public void disable(Permission permission) {permissions.remove(permission);}/*** 是否擁某些權(quán)限*/public boolean isAllow(Permission s) {return permissions.contains(s);}/*** 是否是游客*/public boolean isVip(Permission s) {return Permission.VIP_PERMISSIONS.contains(s);} }

    EnumSet具體實現(xiàn)可參看源碼。個人覺得這種方式最大的好處,在于可控,無論是對業(yè)務(wù)邏輯很好理解,還是對代碼實現(xiàn)的方便,各個方面來看,都是要比位掩碼這種取巧方式的官方化。可是對于android開發(fā)的性能方面:

    1 存在個別反射的身影

    2 EnumSet是實現(xiàn)Set的集合類

    基于以上兩點,那么在設(shè)計用到Enumset的類的時候,還是需要謹(jǐn)慎一些,盡管官方給出了很可靠的保證。



    另外一些講得不錯的博文:

    http://eddmann.com/posts/using-bit-flags-and-enumsets-in-java/

    http://dhruba.name/2008/12/31/effective-java-item-32-use-enumset-instead-of-bit-fields/

    總結(jié)

    以上是生活随笔為你收集整理的位掩码(BitMask)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    在线观看成人国产 | a视频在线 | 久久亚洲精品国产亚洲老地址 | 久久综合久久综合这里只有精品 | 深爱激情站 | 久久网页| 亚洲天天 | 国产一级h | 欧美韩日视频 | 国产69久久 | 国产精品美女999 | 国产 在线观看 | 久久精品www人人爽人人 | 亚洲理论电影网 | 国产精品一区在线 | 精品久久久久一区二区国产 | 免费网站色 | 99精品欧美一区二区蜜桃免费 | 中文字幕资源网在线观看 | 久久国产精品影片 | av导航福利| .国产精品成人自产拍在线观看6 | 国产视频中文字幕 | 麻豆免费精品视频 | 手机在线永久免费观看av片 | 国产在线视频不卡 | 中文字幕国内精品 | 国产人成在线观看 | 福利片视频区 | 91av中文字幕| 免费网站看av片 | 日韩视频免费在线观看 | 久久国产精品免费看 | 超碰官网| 国产99久久久久 | 国产专区精品 | 最近免费中文字幕大全高清10 | 久久久久亚洲天堂 | 另类老妇性bbwbbw高清 | 91成人精品一区在线播放69 | 久久久99精品免费观看乱色 | 国产精品久久久一区二区三区网站 | 久久亚洲人| 热久久免费国产视频 | 亚洲精品视频在线免费 | 国产黄色资源 | 永久免费精品视频网站 | 精品高清视频 | 九九99视频 | 亚洲一区久久久 | 在线观看91精品视频 | 91视频麻豆视频 | 丁香婷婷在线 | 91片黄在线观看 | 国产一级免费观看视频 | 亚洲激情网站免费观看 | 97香蕉超级碰碰久久免费软件 | 久久久美女 | 波多野结衣一区二区三区中文字幕 | 久久99免费视频 | 粉嫩av一区二区三区入口 | 免费看黄在线看 | 免费观看www视频 | 狠狠色丁香婷婷综合久久片 | 成人性生交大片免费看中文网站 | 国产精品ssss在线亚洲 | 亚洲综合视频在线 | 97热视频 | 麻豆国产电影 | 91在线观看视频 | 韩日精品在线 | 成年人视频免费在线 | 黄色特一级 | 国产一区二区播放 | 亚洲精品中文字幕在线观看 | 91精品一| 天堂视频一区 | 免费国产亚洲视频 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 在线观看视频h | 国产xx视频| 国产成人精品福利 | 成年人免费观看在线视频 | 久草视频免费观 | 国产精品福利视频 | 精品uu | 国产高清免费av | 亚洲免费不卡 | 亚洲精品久久久久久中文传媒 | 国产一级免费在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产亚洲精品日韩在线tv黄 | 久草在线欧美 | 成人免费在线播放 | 欧美日韩久久一区 | 国产精品1区2区在线观看 | 午夜av免费看| 日韩精品视频免费专区在线播放 | 亚洲毛片在线观看. | 日本韩国精品在线 | 爱爱av网 | 免费 在线 中文 日本 | 黄色av一区 | 狠色狠色综合久久 | 97超视频免费观看 | 伊人五月在线 | 欧美福利网站 | 日韩精品在线一区 | 久久 亚洲视频 | 在线免费观看黄色小说 | 国产高清视频在线免费观看 | 久久99久久99精品中文字幕 | 中文字幕一区二区在线观看 | 亚洲久久视频 | 正在播放国产精品 | 国产精品99久久久久久久久 | 国内揄拍国产精品 | 国产黄色理论片 | 国产精品1区2区3区 久久免费视频7 | 日韩av网址在线 | 日韩午夜电影网 | 色婷婷亚洲婷婷 | 麻豆传媒视频在线免费观看 | 国产视频 久久久 | 久久久久久毛片精品免费不卡 | 日韩成人在线免费观看 | 亚洲国产精品第一区二区 | 婷婷爱五月天 | 久久国产欧美日韩精品 | 亚洲成av人电影 | 亚洲狠狠丁香婷婷综合久久久 | 日韩av午夜在线观看 | 91久久一区二区 | 97夜夜澡人人双人人人喊 | 天天操 夜夜操 | 国产成人亚洲在线电影 | 香蕉久草 | 伊人网站| 福利网在线 | 久久综合久久综合这里只有精品 | 欧美日韩在线第一页 | 亚洲视频在线播放 | 日韩免费小视频 | 久久伊人综合 | 99re中文字幕| 亚洲九九精品 | 免费看污黄网站 | 激情深爱 | 免费视频一区二区 | 毛片网在线| 亚洲午夜精品久久久久久久久久久久 | 亚洲精品乱码久久久久v最新版 | 免费久久99精品国产婷婷六月 | 99久热精品 | 亚洲国产精品99久久久久久久久 | 午夜私人影院久久久久 | 精品久久久久免费极品大片 | avcom在线 | 欧美成人xxx | 国产精品一区专区欧美日韩 | 国产在线p| 亚洲欧美视频在线 | 在线观看激情av | 欧美另类一二三四区 | 久久国产精品久久久久 | 玖玖精品视频 | 91精品久久久久久综合乱菊 | 久久久久久99精品 | 亚洲精品乱码久久久久久蜜桃欧美 | 一二三区在线 | 免费a级黄色毛片 | 国产高清在线a视频大全 | 综合色中色 | 毛片永久新网址首页 | 日本精品久久久久中文字幕5 | 国产精品精品国产婷婷这里av | 黄色免费高清视频 | 午夜精品一区二区三区免费视频 | 中文字幕久久精品 | 综合久久久久 | 久久久免费av | av电影在线免费观看 | 国产精品对白一区二区三区 | 精品欧美一区二区三区久久久 | 日韩久久久久久久久久 | 久久久精选 | 一区二区三区中文字幕在线 | 最近的中文字幕大全免费版 | 国产午夜三级一区二区三 | 日韩一二区在线 | 欧美视频在线观看免费网址 | 99在线免费观看视频 | 亚州国产精品久久久 | 欧美一二三区播放 | 久草视频免费观 | 丁香婷婷激情国产高清秒播 | a色视频| 视频一区二区精品 | 永久免费av在线播放 | av黄在线播放 | 黄色精品在线看 | 成人中文字幕在线 | 日本高清中文字幕有码在线 | 97国产大学生情侣白嫩酒店 | 久久精品国产免费看久久精品 | 99视频在线精品免费观看2 | 亚洲精品在线播放视频 | 丁香高清视频在线看看 | 国产精品欧美激情在线观看 | 伊人婷婷综合 | 一级精品视频在线观看宜春院 | 欧美国产一区二区 | 91精品蜜桃 | 中文字幕在线观看免费 | 免费黄在线观看 | 日韩v在线91成人自拍 | 青青草国产成人99久久 | 久久手机看片 | 中文字幕国产精品一区二区 | 2021av在线| 久久av观看 | 麻豆免费在线视频 | 欧美国产日韩在线观看 | 91久久久久久久一区二区 | 国产精品免费一区二区三区在线观看 | 国产成人久久久77777 | 有码中文在线 | 免费日韩 精品中文字幕视频在线 | 黄色亚洲片 | 国产精品永久免费观看 | 18做爰免费视频网站 | 在线免费av播放 | 免费亚洲视频 | 国产午夜影院 | 欧美在线a视频 | 天天干天天草 | 免费成人看片 | 成人av免费在线播放 | 韩国在线视频一区 | 一本大道久久精品懂色aⅴ 五月婷社区 | 亚洲视频网站在线观看 | 人人狠狠| 怡红院成人在线 | 国产麻豆视频在线观看 | 911久久| 91探花视频| 99亚洲国产精品 | 久久99精品国产 | 日韩激情一二三区 | 国产成人免费精品 | 亚洲日本va中文字幕 | 欧美日韩网址 | 奇米影视777四色米奇影院 | 99视频在线免费观看 | 免费亚洲精品 | 亚洲伊人天堂 | 人人超碰在线 | 中文字幕日韩免费视频 | 欧洲一区精品 | 人人擦| 视频在线91 | 美国人与动物xxxx | 色婷婷综合久久久久 | 色亚洲网 | 色综合天天做天天爱 | 日韩视频免费 | 日本性生活一级片 | 天天色欧美 | 91一区二区三区在线观看 | 婷婷色综合色 | 日韩免费中文字幕 | 黄网站免费大全入口 | 国产不卡在线播放 | 亚洲成a人片综合在线 | 久久婷婷一区二区三区 | 久久久久国产精品厨房 | 精品九九九 | 成人黄色在线观看视频 | 91丨九色丨国产在线观看 | 麻豆影音先锋 | 日韩欧美v | 中文字幕一区二区三区在线视频 | 亚洲狠狠婷婷 | 国产精品嫩草影院9 | aaa免费毛片 | 婷婷婷国产在线视频 | 国产中文字幕91 | 日韩av在线看 | 亚洲专区免费观看 | www.天天综合 | 国产午夜精品一区 | 日韩激情在线视频 | 亚洲一区二区三区miaa149 | 狠狠做深爱婷婷综合一区 | av专区在线 | 嫩小bbbb摸bbb摸bbb | 国产精品中文字幕在线观看 | 五月天天av | 欧美日韩xxxxx | 日韩久久一区 | 丁香六月婷婷开心婷婷网 | 日韩在线国产 | 久久中文字幕导航 | 我要看黄色一级片 | 青青河边草免费视频 | 日日夜夜天天综合 | 成人h动漫精品一区二 | 久久精品亚洲综合专区 | 在线观看亚洲 | 欧美日韩免费视频 | 97超碰人人看 | 日韩在线高清免费视频 | 在线播放国产一区二区三区 | 亚洲三级av | 91精品视频在线观看免费 | 成人va在线观看 | 日韩在线免费视频观看 | 国产1区2区3区精品美女 | 最近中文字幕在线中文高清版 | 中文字幕在线日本 | 国产一区二区电影在线观看 | 人人添人人澡人人澡人人人爽 | 国产精品美女久久久久久2018 | 国产在线2020 | 五月婷婷在线综合 | 国产一二三区av | 精品一区二区三区香蕉蜜桃 | 亚洲国产美女久久久久 | 中文字幕在线视频一区 | 欧美精品天堂 | 日日夜夜狠狠操 | 亚洲成年人免费网站 | 美国人与动物xxxx | 精品国产一区二区三区av性色 | 美女黄视频免费 | 久久99国产精品久久99 | 美女黄频视频大全 | 国产高清亚洲 | 国产精品v欧美精品 | 国产最顶级的黄色片在线免费观看 | 国产69久久精品成人看 | 欧美一区二视频在线免费观看 | 久久国产精品色av免费看 | 日韩欧美成人网 | 日韩一区二区在线免费观看 | 一区二区三区四区五区在线 | 久久伦理电影 | 美女精品久久久 | 在线观看国产日韩 | 日韩在线免费小视频 | 中文av日韩| 91精品国自产在线偷拍蜜桃 | 一区二精品 | 国产美女视频一区 | 日韩在线中文字幕视频 | 欧美久久久久久久久久久久久 | 欧美a√在线 | www天天干com| www.色午夜.com| 久久久久久久久久免费视频 | 国产精品久久亚洲 | 中文字幕永久免费 | 99久久精品国产免费看不卡 | 免费网站黄 | 日韩精选在线观看 | 一区二区网 | 日韩性xxxx | 日韩精品免费在线视频 | 亚洲成人av一区二区 | 五月婷婷色播 | av福利第一导航 | 婷婷精品国产欧美精品亚洲人人爽 | 香蕉视频在线免费 | 精品9999 | 最新免费av在线 | 成人精品视频久久久久 | 久久国产一二区 | 中文在线免费看视频 | 精品一区电影 | 色婷久久 | 亚洲黄色免费在线 | 亚州精品在线视频 | 国产精品毛片一区视频播不卡 | 国产一级电影网 | 粉嫩av一区二区三区四区在线观看 | 视频在线一区二区三区 | 国产韩国精品一区二区三区 | 国产高清视频在线播放一区 | 五月婷婷黄色网 | 免费高清在线观看成人 | 天天爽人人爽夜夜爽 | 日韩精品中文字幕在线不卡尤物 | 国产一区视频免费在线观看 | 国产在线看 | 欧美成人性网 | 日韩免费三级 | 国产黄色在线观看 | 日韩精品中文字幕在线观看 | 成人黄色短片 | 亚洲日韩中文字幕在线播放 | 国产亚洲精品久久网站 | www.久久com| 不卡视频在线 | 99爱视频| 99精品视频免费观看 | 久久久精品午夜 | 青青久视频 | 97在线精品国自产拍中文 | 99久久一区 | 一二三区在线 | 天天操天天射天天 | 美女久久一区 | 日韩欧美专区 | 色成人亚洲 | 美女网色| 久久综合偷偷噜噜噜色 | 免费网址在线播放 | 国产精品视频免费 | 久久99热这里只有精品 | 国内综合精品午夜久久资源 | 美女福利视频一区二区 | 国产精品久久久久久一二三四五 | 五月婷激情 | 日本三级人妇 | 色.com| 国产精品久久伊人 | 国产亚洲精品久久 | 国产福利在线免费 | 久久综合色天天久久综合图片 | 九九久久久久99精品 | 丝袜美腿亚洲 | 国产一区二区精品久久91 | 人人爽人人爽人人 | 日韩av一区在线观看 | 欧美一级性生活视频 | 精品免费观看视频 | 国产精品国内免费一区二区三区 | 亚洲国产美女精品久久久久∴ | 91视频麻豆视频 | 国产精久久久久久妇女av | 国产不卡在线观看 | 免费中文字幕在线观看 | 婷婷国产一区二区三区 | 在线免费成人 | 精品免费一区二区三区 | 中文字幕高清在线播放 | 久久免费毛片 | 69av视频在线观看 | 日韩资源在线播放 | 日韩一区二区免费在线观看 | 久久影视中文字幕 | 91精品国产综合久久福利 | 亚洲女欲精品久久久久久久18 | 久久精品综合视频 | 看污网站 | 亚洲精品美女在线 | 91精品国产欧美一区二区成人 | 波多野结衣精品视频 | 免费在线国产 | 亚洲一二三区精品 | 国产精品久久久久久久av大片 | 亚洲欧美国产视频 | 国产成人在线播放 | 亚洲精品视频免费在线观看 | 亚洲狠狠婷婷 | 久久视频在线观看中文字幕 | 亚洲伊人第一页 | 久久久亚洲网站 | 8x成人免费视频 | 欧美淫aaa免费观看 日韩激情免费视频 | www.香蕉视频| 四虎国产精品永久在线国在线 | av888av.com| 欧美日韩亚洲在线观看 | 国产美女主播精品一区二区三区 | 欧美国产精品一区二区 | 成人在线视频免费观看 | 久久草在线精品 | 丁香五月缴情综合网 | 91免费高清视频 | 亚洲精品国内 | 草久草久 | 色av色av色av| 日韩av一区二区三区在线观看 | 怡红院成人在线 | 国产精品久久人 | 国产精品久久久久久久久久99 | 久久久av电影| 国内精品久久久久影院日本资源 | 乱子伦av| 成年人毛片在线观看 | 天天色官网 | 国产a高清 | 久色 网 | www.久久色 | 在线亚洲欧美日韩 | 久久人人精 | 精品人妖videos欧美人妖 | 国产 欧美 日产久久 | 成人av网站在线观看 | 特级片免费看 | 亚洲精品在线观看网站 | 综合网成人 | 日韩国产在线观看 | 精品国产乱码久久久久久久 | 精品久久久久一区二区国产 | 丁香 婷婷 激情 | 亚洲国产精品小视频 | 韩日av在线 | 色九九在线 | 国产精品乱码一区二三区 | 国产高清一级 | 中文字幕影视 | 日韩精品欧美专区 | 欧美人人 | 超碰97免费 | 国产精品va在线观看入 | 男女精品久久 | 高清av网站 | 中文免费观看 | 亚洲精品乱码久久久久久按摩 | 天天撸夜夜操 | 国产精品2019 | 亚洲欧洲精品一区二区精品久久久 | 在线观看av不卡 | bayu135国产精品视频 | 美女视频黄网站 | 91av片| 国产综合精品一区二区三区 | 色综合国产| av在线色 | 色视频 在线| 国内精品视频在线 | 国产精品99久久久精品免费观看 | 少妇自拍av | 亚洲人人射 | 亚洲精品视频在线观看免费 | 久久视频国产精品免费视频在线 | 色婷婷视频| 国产精品v a免费视频 | 久艹在线免费观看 | 亚洲一区尤物 | 69xxxx欧美 | 成人h在线播放 | 久久久精品国产一区二区 | 国产盗摄精品一区二区 | 久草干| 99综合电影在线视频 | 日韩小视频 | 麻豆视频免费入口 | av高清一区二区三区 | 麻豆久久精品 | 99视频在线精品国自产拍免费观看 | 国产一区二区中文字幕 | 最近的中文字幕大全免费版 | 国产一级二级在线观看 | 毛片区| 日韩亚洲国产中文字幕 | 在线日韩中文字幕 | 成年人黄色免费视频 | 久久国产精品99久久久久久老狼 | 麻豆视频国产在线观看 | 伊人天天干 | 亚洲免费在线观看视频 | 美女久久| 日韩理论片 | 欧美激情视频一区 | 91九色在线播放 | 中文字幕日韩在线播放 | 欧美精品一区二区免费 | a√资源在线 | 国产高清在线观看av | 天天爽人人爽夜夜爽 | 日韩欧美黄色网址 | 在线观看av麻豆 | 中文字幕在线字幕中文 | 成人免费观看视频大全 | 日韩中文字幕国产 | 久久精品国产免费 | 四虎5151久久欧美毛片 | 国产精品成人a免费观看 | 欧美成人tv | 在线观看91 | 日韩在线视频一区 | 成人av免费在线播放 | 成人在线免费小视频 | 欧美有色 | 天堂av在线网址 | 亚洲天天在线日亚洲洲精 | 欧美专区日韩专区 | 日韩av免费观看网站 | 黄色avwww| 最近2019中文免费高清视频观看www99 | 日韩在线播放欧美字幕 | 免费网站污 | 亚洲国产精彩中文乱码av | 久草在线在线视频 | 在线之家免费在线观看电影 | 91天天操 | 欧美日韩不卡一区二区三区 | 91麻豆精品久久久久久 | 午夜精品一区二区三区四区 | 精品视频久久久 | 日韩理论在线视频 | 国产福利资源 | 欧美一级在线观看视频 | 在线三级播放 | 精品一区二区三区电影 | 欧洲精品二区 | 久草免费看| 97在线观 | 2019天天干夜夜操 | 日韩r级在线 | 国产一二区视频 | 欧美黄污视频 | 欧美午夜激情网 | 久久综合色天天久久综合图片 | 一区二区三区免费播放 | 国产1级毛片 | 热久久电影 | 国产精品久久久久三级 | 天天干天天拍 | 97色资源 | 一级黄色电影网站 | 黄色影院在线免费观看 | 黄色精品网站 | www国产在线 | 久久影院亚洲 | 国产精品嫩草影院99网站 | 免费看v片 | 国产精品午夜久久 | 中文字幕中文字幕在线中文字幕三区 | av三级av| 成人wwwxxx视频| 国内精品久久久久久久久久久久 | 久草视频国产 | 精品中文字幕在线 | 国产一级二级三级视频 | 77国产精品 | 揉bbb玩bbb少妇bbb | 91漂亮少妇露脸在线播放 | 久艹视频在线免费观看 | 97免费公开视频 | 亚洲精品在线视频网站 | 国产亚洲午夜高清国产拍精品 | 免费美女久久99 | 久久精品理论 | 色狠狠综合天天综合综合 | 免费在线国产视频 | 日韩啪啪小视频 | 不卡的av在线播放 | 99精品国产在热久久下载 | 国产成人精品一区二三区 | 99久久精品无免国产免费 | 国产美女久久久 | 成人cosplay福利网站 | 国产91精品在线观看 | 黄色a三级 | 亚洲最大激情中文字幕 | 久久人人爽av | 日韩av电影一区 | 久久视频二区 | 久久福利影视 | 91精品在线免费观看 | 五月综合色| 天天躁天天狠天天透 | 中文不卡视频在线 | 日韩av在线免费看 | 色吧久久 | 五月香视频在线观看 | 亚洲91中文字幕无线码三区 | 91伊人久久大香线蕉蜜芽人口 | 国产精品久久久久久久7电影 | 一区二区电影在线观看 | 久久免费看视频 | 国产一级电影 | 国产成人久久精品一区二区三区 | 免费情趣视频 | 亚洲女在线 | 91视频在线免费下载 | 国产精品国产三级国产专区53 | 久草视频在线资源站 | 久久9视频| 999久久| 在线三级av | 成人亚洲精品国产www | 中文国产在线观看 | 国产精品com | 国产精品无 | www.色午夜.com| 日本xxxxav| 国产精品专区h在线观看 | 在线看小早川怜子av | 激情综合电影网 | 久久久999精品视频 国产美女免费观看 | 日本中文字幕在线 | 少妇bbb搡bbbb搡bbbb | av在线电影网站 | 国产精品毛片一区二区三区 | 亚洲精品玖玖玖av在线看 | 伊人天堂久久 | 久久久电影 | 色在线免费观看 | 欧美精品999 | 91大神精品视频在线观看 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 2019天天干天天色 | 久久黄网站 | 日韩av一区在线观看 | a√天堂资源 | 天天射综合网视频 | 亚洲日本一区二区在线 | 91一区二区在线 | 婷婷.com| www日韩高清| 黄色免费网战 | 久久a级片| 国产免费xvideos视频入口 | 欧美日本中文字幕 | 国产精品成 | 97超视频免费观看 | 欧美坐爱视频 | 久久久久久激情 | 国产97色 | 黄色最新网址 | 久草精品在线播放 | 国产精品美女久久久久久免费 | 精品美女久久久久久免费 | 久久艹综合| 国产福利91精品张津瑜 | 97国产精品 | 2022中文字幕在线观看 | 人人插超碰| 免费看搞黄视频网站 | 成人av电影在线 | 久久久综合香蕉尹人综合网 | 一二区精品 | 国产一级在线看 | 瑞典xxxx性hd极品 | 狠狠狠狠狠狠狠狠 | 免费观看国产精品视频 | 天天天天爽 | 久久久久久久久久网站 | 91av大全 | 亚洲精品影视在线观看 | 中文字幕永久在线 | 9在线观看免费高清完整 | 亚洲精品在线一区二区三区 | 最新中文字幕在线播放 | 99精品在线 | 99久久婷婷| 亚洲黄色免费在线看 | 亚洲电影图片小说 | 婷婷综合激情 | 久草在线视频中文 | 久久综合色8888 | 97国产在线视频 | 久久天天躁 | 国产成人精品亚洲日本在线观看 | 免费av片在线 | 天堂在线一区二区三区 | 人人射 | 国产精品一区免费在线观看 | 中文字幕在线资源 | 久久精品视频免费观看 | 久久大片网站 | 国产精品区在线观看 | 五月综合激情网 | 操操碰| 午夜视频在线观看一区二区 | 免费观看版 | 欧美日韩不卡一区二区三区 | 欧美激情精品久久久 | 97超碰中文字幕 | 国产精品午夜免费福利视频 | 97超碰人人网 | 人人插人人射 | 亚洲精品视频在线观看免费 | 制服丝袜在线 | 玖玖在线观看视频 | 久草9视频 | 久久精品国产亚洲a | 久久成人精品电影 | 在线99| 久久九九久久精品 | 久久久久久看片 | 香蕉视频免费在线播放 | 欧美一区二区在线看 | av超碰免费在线 | 激情婷婷综合网 | 在线成人免费电影 | 天天操天天操天天干 | 亚洲日韩中文字幕在线播放 | 久久er99热精品一区二区 | 99r在线精品| 日韩欧美在线国产 | 国产麻豆剧果冻传媒视频播放量 | 久久国产日韩 | 国产99自拍 | 日韩日韩日韩日韩 | 精品999在线观看 | avlulu久久精品| 国产在线精品一区二区三区 | 超碰97av在线 | 亚洲电影久久久 | 精品国产伦一区二区三区免费 | 久久久受www免费人成 | 欧美成人精品在线 | 精品久久久久国产免费第一页 | 一级片免费视频 | 亚洲人人射 | 99综合影院在线 | 九九精品在线观看 | av中文天堂| 密桃av在线 | 91c网站色版视频 | 久久一及片| 国产精品网站 | 91av视频在线观看 | 欧美激情另类文学 | 久久久国产一区二区三区四区小说 | 99久久99久久精品 | 久久99在线| 国产精品国产三级国产aⅴ9色 | 91九色丨porny丨丰满6 | 国产免费视频在线 | 69夜色精品国产69乱 | 成人理论在线观看 | 丁香花在线观看免费完整版视频 | 91精品国产91久久久久久三级 | 美女黄频视频大全 | 亚洲狠狠婷婷综合久久久 | 亚洲动漫在线观看 | 激情在线免费视频 | 一级黄色片网站 | 亚洲久草视频 | 国产精品免费看久久久8精臀av | 欧美一区三区四区 | 色一级片 | 99中文在线 | 成人av免费| 99r在线精品 | 偷拍精品一区二区三区 | 日韩精品短视频 | 日韩最新av在线 | 成人午夜影院在线观看 | 九九日韩| 97人人模人人爽人人喊网 | 天天色综合1| 五月婷av | 韩国精品视频在线观看 | 五月激情婷婷丁香 | 国产无套视频 | 成人久久18免费网站麻豆 | 综合久久网站 | 国产一二区免费视频 | 久久免费黄色网址 | 在线观看视频黄色 | 狠狠狠狠狠干 | 九九九九精品九九九九 | 亚洲免费av在线 | 久久精视频 | 国产精品美女久久久久久久网站 | 国产在线精品福利 | 91桃色在线播放 | av在线影视 | 亚洲精品视频在线观看免费视频 | 色搞搞 | 一级久久精品 | www国产亚洲精品久久网站 | 色噜噜狠狠色综合中国 | 色com网| 国内一区二区视频 | 日韩电影中文字幕在线 | 日韩免费小视频 | 国产高h视频 | 区一区二区三区中文字幕 | 久草在线手机观看 | 国产女教师精品久久av | 激情欧美一区二区三区免费看 | 人人玩人人添人人澡超碰 | 日狠狠 | 国产99久久九九精品免费 | 国产免费一区二区三区最新6 | 欧美日韩精品区 | 99视频在线免费 | 国产在线超碰 | 人人草在线视频 | 精精国产xxxx视频在线播放 | 欧美一区二区日韩一区二区 | 激情五月婷婷综合 | 精品国产99国产精品 | 国产高清不卡一区二区三区 | 亚洲国产字幕 | 伊色综合久久之综合久久 | 热99在线视频 | 91丨九色丨蝌蚪丨对白 | 九九九热精品免费视频观看 | 久久99亚洲网美利坚合众国 | 国产成人亚洲精品自产在线 | 激情婷婷 | 精品国产欧美一区二区三区不卡 | 国产精品一级视频 | 日韩免费成人 | 五月天久久 | 精品国产aⅴ一区二区三区 在线直播av | 少妇视频一区 | 久久久www成人免费毛片 | 黄色免费网站 | 一本一本久久aa综合精品 | 91在线精品播放 | 亚洲人成人天堂h久久 | av一区二区三区在线观看 | 日韩成人免费在线电影 | 亚洲精品一区中文字幕乱码 | 婷婷色中文| 嫩草av影院| 麻豆视频网址 | 天天射射天天 | 午夜视频播放 | 99热网站| 超碰97国产精品人人cao | 欧美国产亚洲精品久久久8v | 国产一级电影在线 | 欧美日韩精品久久久 | 亚洲最大在线视频 | 一区二区在线影院 | 黄色网中文字幕 | av在线小说 | 日韩精品欧美专区 | 中文字幕在线免费97 | 综合国产视频 | 福利视频在线看 | 懂色av一区二区在线播放 | 在线观看91av | 国色天香在线观看 | 中文字幕中文中文字幕 | 97精品国产一二三产区 | 天天综合区 | 国产精品18久久久久久久 | 激情丁香婷婷 | 99久久99久久精品国产片 | 中文字幕免费高清在线观看 | 久久99久久99精品免观看粉嫩 | 国产三级在线播放 | 免费一级片在线观看 | 国产视频亚洲视频 | 国产午夜一区 | 69久久夜色精品国产69 | 91免费观看视频在线 | 欧美成年网站 | 一级成人免费视频 | a级一a一级在线观看 | 婷婷综合久久 | 操操综合网| 国产精品久久久久久久久久免费 | 日本99久久 | 国内精自线一二区永久 | 在线国产精品视频 | 在线国产中文字幕 | 精品国自产在线观看 | 人人草在线视频 | 五月婷色| 久久精品日韩 | 国产只有精品 | 夜夜爽88888免费视频4848 | 97精品国产97久久久久久久久久久久 | 91大神精品视频在线观看 | 亚洲国产中文在线观看 | h视频日本 | 国产麻豆电影在线观看 | 最新91在线视频 | 久久久三级视频 | 国产亚洲精品久久久久久久久久 | 91精品国产一区二区在线观看 | 日韩av中文字幕在线免费观看 | 一区二区三区在线免费 | 91精品区 | 久保带人 | 黄色在线免费观看网站 | 亚洲干 | 亚洲欧洲国产日韩精品 | 精品自拍av | 久久综合五月 | 欧美在线观看视频免费 | 久久综合久色欧美综合狠狠 | 欧美视频日韩 | 久久桃花网 | 特级片免费看 | 国产一级免费在线 | 五月天激情综合网 | 亚洲婷婷综合色高清在线 | 国产专区精品视频 | 久久综合视频网 | 69精品视频 | 国产精品青草综合久久久久99 | 97色免费视频 | 免费高清在线一区 |