日韩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)容還不錯,歡迎將生活随笔推薦給好友。

    夜夜躁日日躁 | 中文字幕免费久久 | 97狠狠干| 五月的婷婷 | 久久婷婷一区二区三区 | 97在线免费视频观看 | 欧美精品在线视频 | 天天爽天天做 | 香蕉影院在线 | 亚洲小视频在线观看 | 人人爱爱人人 | 99re8这里有精品热视频免费 | 娇妻呻吟一区二区三区 | 9999激情 | 日本精品久久久久中文字幕5 | 国产大陆亚洲精品国产 | 色婷婷激婷婷情综天天 | 久久草在线视频国产 | 黄色片视频免费 | 久久久久久久久久免费 | 久久精品观看 | 久久在草| 久久综合久久八八 | 高清国产一区 | 国产精品资源 | 一区二区三区日韩在线观看 | 免费在线国产 | 欧美在线视频精品 | 丁香激情综合 | 欧美日韩一区二区在线 | 中文字幕精品一区 | 91精品第一页 | 日韩色综合| 99久久婷婷国产综合精品 | 91资源在线免费观看 | 精品国内| 狠狠操操操 | 中文字幕在线视频网站 | 蜜臀av性久久久久av蜜臀妖精 | 国产一级性生活视频 | av成人在线网站 | 亚洲成av人片在线观看香蕉 | 在线视频一区二区 | 中文字幕在 | 在线日韩三级 | 91福利小视频| 丁香激情综合 | 国产成人av在线影院 | 国产字幕在线播放 | 91亚洲精品久久久 | 91精品办公室少妇高潮对白 | 色中色综合 | 久久久色 | 色综合天天做天天爱 | 中文字幕在线播放视频 | 久久中文字幕在线视频 | 久久久久日本精品一区二区三区 | 色综合天天天天做夜夜夜夜做 | 日韩有码第一页 | 99精品免费久久久久久日本 | 日韩丝袜在线 | 色妞久久福利网 | 美女黄视频免费 | 四虎8848免费高清在线观看 | 97视频在线看 | 日韩在线视 | 亚洲黄色三级 | 69中文字幕 | 久久亚洲精品国产亚洲老地址 | 国产成人久久77777精品 | 啪嗒啪嗒免费观看完整版 | av成年人电影 | 高清免费在线视频 | 91香蕉视频污在线 | 最新日韩电影 | 国产精品久久久久久五月尺 | 免费视频久久久久 | 欧美日韩中文另类 | 99精品在线观看 | 成人h动漫在线看 | 996久久国产精品线观看 | 99久久久国产免费 | 久久av中文字幕片 | 99视频| 欧美日韩中文字幕在线视频 | 欧美日韩一区二区三区在线观看视频 | 精品国产电影一区二区 | 国产免费久久 | 久久久久夜色 | 日韩一级成人av | 国产色妞影院wwwxxx | 亚洲狠狠婷婷 | 欧美资源在线观看 | 久艹视频在线观看 | 久久一区91| 18性欧美xxxⅹ性满足 | 色www精品视频在线观看 | 久久久精品国产一区二区电影四季 | 国产午夜剧场 | 福利视频第一页 | 在线观看亚洲国产精品 | 亚洲一区 影院 | 中文字幕在线免费看 | 97av超碰| 国产免费三级在线观看 | 婷婷日日| 国产精品孕妇 | 天天爽天天摸 | 91精品导航 | 亚洲精品久久久久www | 国产一级做a | 午夜黄色大片 | 国产精品美女在线观看 | 中字幕视频在线永久在线观看免费 | 精品在线观看一区二区三区 | av日韩av| 免费男女网站 | 国产精品不卡av | 99精品一区二区三区 | 亚洲精品www久久久久久 | 91禁在线看 | 亚洲成a人片77777kkkk1在线观看 | 久久久999免费视频 日韩网站在线 | 久久这里只有精品久久 | 在线观看黄 | www.少妇| 国产一区在线视频 | 在线免费观看黄色小说 | 2020天天干天天操 | 狠狠色狠狠色合久久伊人 | 成人va在线观看 | 亚州日韩中文字幕 | 国产精品男女啪啪 | 日韩中文字幕国产精品 | 91精品国产99久久久久久久 | 日韩免费播放 | 欧美一区日韩一区 | 天天艹天天| 黄色软件在线观看免费 | 在线日韩视频 | 日韩中文字幕视频在线 | av福利在线 | 2022久久国产露脸精品国产 | 日韩精品免费在线观看视频 | 色哟哟国产精品 | 热99在线| 婷婷四房综合激情五月 | 国产精品 美女 | 精品国产伦一区二区三区观看体验 | 成人免费xyz网站 | 欧美日韩高清不卡 | 久久精品久久久精品美女 | 亚洲精品自在在线观看 | 99在线热播 | 免费看的av片 | 毛片网在线观看 | 欧美午夜一区二区福利视频 | 青青久草在线 | 亚洲禁18久人片 | 色www精品视频在线观看 | 免费一级毛毛片 | 久久久久 免费视频 | 九九免费精品 | 丁香视频免费观看 | 四虎国产视频 | 国产精品久久久久久久久免费 | 亚洲小视频在线观看 | 在线观看一区 | 天天操天天射天天操 | 久久综合影视 | 亚洲国产播放 | 又黄又爽又无遮挡免费的网站 | 国产一区二区不卡在线 | www.久艹 | 国内丰满少妇猛烈精品播 | 国产精品免费观看视频 | 国产 亚洲 欧美 在线 | 国产成人精品亚洲精品 | av福利网址导航大全 | 在线成人免费电影 | 久久精品国产精品亚洲 | 激情片av | 国产手机视频在线播放 | www.五月天激情 | 成人精品国产 | 在线免费观看黄色小说 | 国产精品1区2区3区 久久免费视频7 | 久草在线观看 | 激情网第四色 | 在线看v片成人 | 探花视频免费在线观看 | 亚洲91精品在线观看 | 日韩综合视频在线观看 | 天天摸天天舔天天操 | 亚洲人久久| 日韩精品免费在线视频 | 美女国产网站 | 天天操夜夜曰 | 久久99深爱久久99精品 | 日日麻批40分钟视频免费观看 | 久久影视中文字幕 | 欧美孕妇视频 | 蜜臀精品久久久久久蜜臀 | 高清国产午夜精品久久久久久 | 韩国av免费在线 | 天天干天天天天 | 久久亚洲私人国产精品 | 最近更新中文字幕 | 婷婷六月综合网 | 久久99精品波多结衣一区 | 日韩免费电影一区二区 | 激情视频免费在线 | 最新色站 | 国产在线观看二区 | 成人国产精品一区 | 天天插天天干天天操 | 久久av一区二区三区亚洲 | 亚洲精品高清一区二区三区四区 | 亚洲热久久 | 青青网视频 | 国产高清不卡在线 | 一区二区三区精品在线视频 | 天天色天天 | 成人黄在线观看 | 日韩电影在线一区二区 | 国产午夜三级一二三区 | 亚洲精品在线看 | 九色精品在线 | 在线观看亚洲精品 | www.色五月 | 欧美精品成人在线 | 四虎成人精品永久免费av九九 | av黄色av | 久久爱www.| 中文在线免费看视频 | 一区二区三区国产精品 | 深夜免费小视频 | 麻豆精品视频在线 | 久久性生活片 | 亚洲涩涩网 | 一级片色播影院 | 狠狠干夜夜操 | 久久久麻豆精品一区二区 | 亚洲欧洲一区二区在线观看 | 午夜丰满寂寞少妇精品 | 免费看三片| 韩日精品中文字幕 | 日本h在线播放 | 国产精品乱看 | 日韩欧美一区二区在线观看 | 国内视频一区二区 | 国产成人精品电影久久久 | 免费情趣视频 | 国产精品美女久久久久久久 | 欧美在线久久 | 在线免费黄色毛片 | 成人免费看视频 | 日日干日日 | 国产日韩精品视频 | 美女免费视频网站 | 97av.com| 日韩激情视频在线观看 | 亚洲 欧美变态 另类 综合 | 中文乱幕日产无线码1区 | 日韩免费三区 | 成人av视屏 | 一区二区三区久久精品 | 激情久久网 | 日韩av免费在线电影 | 99电影456麻豆 | 午夜精品久久久久 | 91成人精品观看 | 国产精品婷婷午夜在线观看 | 中文字幕在线观看网 | 超碰在线观看97 | 中文字幕高清有码 | 国产精品美女视频 | 在线一二三四区 | 91在线播 | 久久久精品综合 | 69国产成人综合久久精品欧美 | 亚洲免费在线观看视频 | 久久免费国产精品1 | 亚洲国产色一区 | 日韩电影在线观看一区二区三区 | 国产日本亚洲 | 色婷婷在线播放 | 正在播放日韩 | 亚洲 欧洲av | 99综合久久| 一区二区观看 | 在线欧美小视频 | 日韩高清精品一区二区 | 日韩av中文字幕在线免费观看 | 国产九九在线 | 久久久久久草 | 在线观看免费高清视频大全追剧 | 免费精品在线 | 91九色国产视频 | 欧美亚洲国产精品久久高清浪潮 | 国产成人在线免费观看 | 视频在线99re| 成年人毛片在线观看 | 免费成人黄色 | 色综合色综合久久综合频道88 | 狠狠狠色丁香婷婷综合久久88 | 日韩精品欧美专区 | 美女视频一区 | 久久精品五月 | 日韩色视频在线观看 | 黄色片网站av | av 在线观看 | 97超碰人人澡人人 | a在线观看视频 | 日韩中文免费视频 | 黄色毛片一级 | 中文字幕在线播放日韩 | 国产色综合天天综合网 | 久久五月婷婷丁香社区 | 久久久久久免费毛片精品 | 操处女逼| 国产成人福利在线观看 | 九九免费观看视频 | 午夜免费视频网站 | 日韩中文久久 | 国产在线v | 中文字幕影视 | 91一区啪爱嗯打偷拍欧美 | 最新色站| 2021久久 | 久久精品视频免费观看 | 国产视频亚洲视频 | 亚洲成av人影片在线观看 | 西西人体www444 | 婷婷在线色| 友田真希av| 成人毛片一区二区三区 | 乱男乱女www7788 | 麻豆传媒视频在线播放 | 国产精品原创视频 | 国产一区二区三区在线 | 欧美国产三区 | 日日日天天天 | 国产资源免费 | 国产小视频免费在线观看 | 国内揄拍国产精品 | 免费高清看电视网站 | 国际精品久久久 | 西西444www大胆高清视频 | 亚洲精品视频在线观看网站 | 成全免费观看视频 | 欧洲精品视频一区 | 国产精品自产拍在线观看蜜 | 中文字幕亚洲精品日韩 | 中文字幕视频网站 | 成年人av在线播放 | 国产亚洲视频在线观看 | 国产欧美日韩精品一区二区免费 | avlulu久久精品 | 2023亚洲精品国偷拍自产在线 | 五月天色婷婷丁香 | 国产黄a三级三级 | 最新中文字幕在线观看视频 | 久久99精品一区二区三区三区 | 国产精品久久久久久模特 | 欧美精品九九99久久 | 亚洲春色综合另类校园电影 | 国产成人精品av在线观 | 免费观看丰满少妇做爰 | 欧美日韩精品在线免费观看 | 亚洲精品a区 | 国产福利91精品一区 | japanesexxxhd奶水| 婷婷狠狠操 | 国产精品视频永久免费播放 | 人人操日日干 | 九九热只有精品 | 九九免费在线观看视频 | 2022久久国产露脸精品国产 | 亚洲视频免费视频 | 91精品区 | 日韩动态视频 | 91精品视频免费在线观看 | 日韩欧美视频免费看 | 九七视频在线 | 欧美ⅹxxxxxx | 日本性生活一级片 | 久久99精品久久久久久清纯直播 | 免费在线观看av | 国产精品 中文字幕 亚洲 欧美 | 密桃av在线| 亚洲一区二区精品在线 | 久草国产在线观看 | 亚洲视频免费在线观看 | 欧美另类69 | 久久精品国产精品 | 国产玖玖精品视频 | 日日夜av| 亚洲开心色 | 久久99精品国产99久久6尤 | 欧美视频二区 | 天天综合天天做天天综合 | 婷婷色亚洲 | 日韩特级毛片 | 中文字幕高清av | 国内精品久久久久影院优 | 久久久久激情视频 | 日本精品视频一区二区 | 欧美9999 | 99视频网站 | 日韩精品专区在线影院重磅 | 天天爽天天搞 | 99精品视频中文字幕 | 超碰精品在线观看 | av成人免费在线观看 | www色网站| 成人在线超碰 | 在线观看av不卡 | 狠狠操.com | 日韩av在线一区二区 | 97色在线| 成人免费视频网站在线观看 | 欧美成人精品三级在线观看播放 | 九九热只有精品 | 国产午夜小视频 | 日韩精品一区二区三区电影 | 91香蕉嫩草| 久久久久久久久久久久久久电影 | 亚洲精品乱码久久久久久9色 | 日日草夜夜操 | 中文在线a在线 | 中文av一区二区 | 欧美有色 | 久久久久免费精品国产小说色大师 | 国产精品大尺度 | 中文字幕久久久精品 | 丁香婷五月 | 国产69久久| 久久蜜臀一区二区三区av | 日本视频不卡 | 中文字幕av播放 | 久久久精品国产免费观看一区二区 | 中文字幕高清免费日韩视频在线 | 麻豆免费精品视频 | 精品视频免费久久久看 | 亚洲波多野结衣 | av黄色在线观看 | 在线成人高清电影 | 最近中文字幕mv免费高清在线 | 91黄色在线视频 | 国产亚洲精品福利 | 欧美91视频 | av免费电影网站 | 天天天天天天天天操 | 色综合久久久久综合体 | 99精品久久99久久久久 | 亚洲国产片色 | 精品国产自在精品国产精野外直播 | 99在线视频网站 | 九九九国产 | av在线电影免费观看 | 国产黄色一级片在线 | 国产品久精国精产拍 | 我要色综合天天 | 福利一区二区在线 | 欧美激情精品久久久久 | 欧美另类xxx | 最近中文字幕免费视频 | 亚洲国产美女精品久久久久∴ | 麻豆视频在线观看 | 黄色免费网战 | 精品一二三四视频 | 国产一级片网站 | 日韩av视屏| 国产一级小视频 | 9热精品 | 草久在线| 欧美最猛性xxx | 免费能看的黄色片 | 日韩欧美在线一区二区 | 午夜国产影院 | 欧美少妇xxx | 夜夜澡人模人人添人人看 | 九色自拍视频 | 国产高清免费在线观看 | 国产手机在线观看视频 | 久久永久免费 | 激情综合亚洲精品 | 国产精品亚洲视频 | 日日天天狠狠 | 亚洲最新在线视频 | 国产999精品久久久久久麻豆 | 国产精品手机视频 | 高清精品久久 | 成人在线视频一区 | 欧美a级成人淫片免费看 | 久草精品视频 | 综合色久 | zzijzzij亚洲日本少妇熟睡 | 国产涩涩在线观看 | 中文字幕日韩免费视频 | 日本精品久久久久中文字幕 | 国产在线p| 日韩欧美在线不卡 | 日韩在线观看a | 中午字幕在线观看 | 麻豆视频免费在线 | 成人一级片视频 | 麻豆视频在线观看免费 | 成人久久久久久久久久 | 日日夜夜天天干 | 成年人在线电影 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 看片一区二区三区 | 成人免费看视频 | 91在线观看高清 | 婷婷亚洲激情 | 亚洲精品美女久久17c | 精品国产成人av在线免 | 久久免费视频这里只有精品 | 国内精品在线观看视频 | 玖玖色在线观看 | 亚洲女同videos | 亚洲精品在线网站 | 99热9| 欧美日韩三区二区 | av在线永久免费观看 | 久久99精品久久久久久三级 | 久久精品资源 | 91视频在线观看下载 | 亚洲成人午夜在线 | 国产91在线 | 美洲 | 亚洲精品乱码久久久久久久久久 | 国产精品亚 | 日本aa在线 | 精品久久久久久亚洲综合网站 | 国产视频中文字幕在线观看 | 国内精品视频在线播放 | 在线免费日韩 | 国产91对白在线播 | 99色| 中文字幕电影在线 | 成年人视频在线免费 | 91在线视频 | 99久高清在线观看视频99精品热在线观看视频 | 密桃av在线 | 午夜精品久久久久久99热明星 | 亚洲视频精选 | 五月婷av| 99资源网 | 欧美日本啪啪无遮挡网站 | 国产精在线 | 激情综合色综合久久综合 | 中文十次啦 | 亚洲视频axxx| 韩国精品一区二区三区六区色诱 | av九九九| 美女一级毛片视频 | 免费日韩 精品中文字幕视频在线 | 国产精品嫩草影院9 | 国产视频亚洲视频 | 久草综合在线 | 亚洲少妇xxxx | 亚洲欧美日韩国产一区二区三区 | 欧美一区二区在线免费观看 | 日韩亚洲国产中文字幕 | 免费能看的黄色片 | 欧美一级免费在线 | 国产国语在线 | 日日添夜夜添 | 日韩综合精品 | 久久国产日韩 | 麻豆视频在线免费看 | 激情综合亚洲精品 | 在线成人免费av | 欧美极度另类性三渗透 | 黄色一级在线视频 | 992tv在线观看网站 | 69视频国产 | 国产成人一区在线 | 国产中文字幕在线视频 | 国际av在线 | 在线电影91| 亚洲国产成人在线 | 狠狠色丁香婷婷 | 色综合在 | 欧美色888| 天堂av免费在线 | 久久国产精品第一页 | 日日干夜夜干 | 国产九九九视频 | 国产精品美女久久久久久久久久久 | 国产成人精品一区二区三区在线 | 欧美精品你懂的 | 国产精品爽爽久久久久久蜜臀 | 97精品国产97久久久久久免费 | 国产a高清 | 欧美午夜性生活 | 午夜电影久久久 | 天天操天天谢 | 国产精品一级视频 | 国产精品99久久免费黑人 | 免费观看的av网站 | 久久99在线视频 | 亚洲成人家庭影院 | 少妇bbb | 日韩精品视频第一页 | 国产无遮挡又黄又爽馒头漫画 | 91精品国产自产老师啪 | 午夜精品av| 天天草天天干天天射 | 婷婷国产精品 | 丁香影院在线 | free,性欧美| 免费看一级黄色 | 久久综合久久综合久久 | 香蕉影视app | 99热亚洲精品 | 国产精品美女久久久久久久网站 | 日日夜夜免费精品视频 | 国产啊v在线观看 | 亚洲理论片 | 久久国产精品免费 | 超碰在线97观看 | 91成人区 | 亚洲成人av电影在线 | 99在线看 | 久久不卡av | 久久av一区二区三区亚洲 | 天天操天天添天天吹 | 操操操操网 | 精品久久久久久久 | 久久久久久久久精 | 精品在线一区二区 | 国产 欧美 日本 | 国产高清在线一区 | 精品久久久久一区二区国产 | 中文字幕av全部资源www中文字幕在线观看 | 激情欧美日韩一区二区 | 在线播放亚洲 | 五月天婷婷狠狠 | 国产精品一区二区三区免费看 | 欧美韩日精品 | 九九免费精品视频 | 日韩伦理片hd | 97精品国产97久久久久久久久久久久 | 色综合久久久久久中文网 | 亚洲国产日韩一区 | 欧美日韩另类视频 | 亚洲年轻女教师毛茸茸 | 国产亚洲一区二区三区 | 色吧av色av| 亚洲视频资源在线 | 亚洲午夜精 | 91精品久久久久久综合乱菊 | 亚洲精品99久久久久久 | 偷拍区另类综合在线 | 黄a网 | 日韩欧美高清视频在线观看 | 欧美日本不卡视频 | 顶级bbw搡bbbb搡bbbb | 91亚色视频在线观看 | 93久久精品日日躁夜夜躁欧美 | 久久久久久久久久久网 | 亚洲国产免费看 | 91精品国产一区二区在线观看 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 在线免费视频你懂的 | 精品在线看 | v片在线播放 | 一级特黄aaa大片在线观看 | 在线观看中文字幕av | 久久国产精品久久久久 | 色五月激情五月 | 亚洲桃花综合 | 亚洲国产三级在线观看 | 五月天伊人网 | 免费在线观看视频a | 亚洲综合丁香 | 色在线国产 | 九九九九热精品免费视频点播观看 | 亚洲欧美乱综合图片区小说区 | 福利视频精品 | 国产日韩视频在线 | 免费三级大片 | 欧亚日韩精品一区二区在线 | 欧美成人亚洲成人 | 国产精品成人自产拍在线观看 | 天天综合久久综合 | 国产中文字幕在线 | 中字幕视频在线永久在线观看免费 | 国产黄大片在线观看 | 日韩国产在线观看 | 四虎www| 精品一二三区 | 亚洲国产97在线精品一区 | 91传媒激情理伦片 | 在线影视 一区 二区 三区 | 91黄视频在线 | 亚洲精品黄 | 又黄又爽又色无遮挡免费 | 伊人五月综合 | 成人三级视频 | 婷婷丁香在线视频 | 亚洲毛片在线观看. | 国产精品久久久久久婷婷天堂 | 久久情网| 色成人亚洲 | 黄色av在| 国产在线p | 国产一区二区在线影院 | 九九在线高清精品视频 | 久久免费毛片视频 | 玖玖在线观看视频 | 免费看黄色小说的网站 | 久久99精品国产一区二区三区 | 丁香五月亚洲综合在线 | 久久国产一区二区三区 | 亚洲传媒在线 | 成人毛片网 | 五月天亚洲婷婷 | 亚洲激情免费 | 久草新在线 | 久久精品在线免费观看 | 精品高清视频 | 一区在线免费观看 | 国产 欧美 日韩 | 免费网站v| 亚洲影院天堂 | 免费看的黄色小视频 | 色噜噜狠狠狠狠色综合 | 欧美激情精品久久久久久变态 | 国产在线精品一区二区 | 青青色影院 | 手机av网站| 成 人 黄 色 视频 免费观看 | 国产免费观看久久黄 | 少妇精品久久久一区二区免费 | 亚洲精品伦理在线 | 在线免费观看视频你懂的 | 黄色影院在线播放 | 高清av不卡| 视频在线观看国产 | av免费网站观看 | 在线观看完整版 | 国产免费观看高清完整版 | 人人澡人人爱 | 免费成人av| 久久精品国产一区二区三区 | 国产亚洲aⅴaaaaaa毛片 | 国产自制av | 99热这里精品 | 国产精品久久久久久久久久三级 | 国产午夜精品免费一区二区三区视频 | 天堂网一区 | 久久久久久久久亚洲精品 | 97操操| 在线观看免费高清视频大全追剧 | 精品国产欧美一区二区三区不卡 | 日韩一区二区三区免费视频 | 91经典在线 | 不卡精品视频 | 久久福利 | 91精品视频一区 | 精品一区二区免费视频 | 欧美一区二区三区不卡 | 黄色日视频 | 精品一区二区三区香蕉蜜桃 | 国产高清久久久久 | 亚洲精品乱码久久久久久 | 日韩 精品 一区 国产 麻豆 | 91福利视频免费观看 | 亚洲草视频 | 国产精品热视频 | 中文字幕在线看片 | 操操操天天操 | 久草在线电影网 | 中文字幕免费 | 亚洲成人频道 | 麻豆高清免费国产一区 | 香蕉视频国产在线观看 | 国产精品免费av | 天天爱天天射 | 欧美日韩一区二区三区在线观看视频 | 亚洲另类久久 | 国产在线播放一区二区三区 | 国产色道 | av大全在线免费观看 | 国产二级视频 | 亚洲国产免费av | 国产精品中文久久久久久久 | 亚洲精品视频在线 | 久久精品人人做人人综合老师 | 五月婷婷久久丁香 | 国产精品久久久久久久久久久免费看 | 亚州中文av| 欧美久久综合 | 中国一级片视频 | 黄色网址在线播放 | 人人爽人人爽人人片av免 | 亚洲精品高清一区二区三区四区 | 色亚洲激情| 九月婷婷人人澡人人添人人爽 | 免费看成人 | 亚洲男男gⅴgay双龙 | 不卡电影免费在线播放一区 | 久久精品国产久精国产 | 亚洲精品综合一二三区在线观看 | 午夜久久网站 | 日本女人b | 国产亚洲综合性久久久影院 | 黄色成人在线 | 日韩视频一区二区 | 大胆欧美gogo免费视频一二区 | 日韩字幕在线观看 | 99久久久国产精品免费观看 | 国产精品久久久久久高潮 | 久久婷五月| 欧美日韩激情视频8区 | 欧美黄在线 | 91xav| 91精品天码美女少妇 | 久久男女视频 | 最近最新中文字幕 | 日日夜夜人人精品 | 手机av在线免费观看 | 中文字幕在线观看网址 | 久久久久在线视频 | 欧美精品资源 | 超碰97人人干 | 久久99国产一区二区三区 | 亚洲黄色片一级 | 国产 在线 日韩 | 午夜精品视频一区二区三区在线看 | 久久黄色网址 | 五月婷婷另类国产 | 操久在线 | av在线播放快速免费阴 | 国产精品成人国产乱一区 | 日韩色高清 | 日韩av专区| 亚洲免费小视频 | 操高跟美女| 五月婷婷播播 | 免费在线观看日韩 | 久精品视频在线观看 | 免费网站观看www在线观看 | 亚洲视频在线播放 | 日韩精品一区电影 | 国产日韩欧美自拍 | 国产中年夫妇高潮精品视频 | 97在线观看视频免费 | 天天激情 | 亚洲国产免费 | 激情深爱五月 | 日韩欧美一区二区三区免费观看 | 黄色小说视频网站 | 91在线免费看片 | 欧美日韩精品免费观看 | 欧美日比视频 | 国产不卡精品 | 亚洲精品免费在线 | 日韩网页 | 久久久久精 | 888av| 天天操天天操天天操天天操天天操天天操 | av电影在线免费 | 午夜精品久久久99热福利 | 日日爽夜夜爽 | 成人黄色视 | 国产视频18 | 久久精品日本啪啪涩涩 | 免费韩国av| 久久精品视 | 一区二区三区在线播放 | 毛片在线网 | 国产小视频在线观看 | 久久视频免费看 | 在线观看免费av网 | 国产精品久久久99 | 99在线观看视频 | 国产色视频123区 | 国产高清综合 | 五月天最新网址 | 久久黄色a级片 | 色综合夜色一区 | 国产精品成人一区二区三区 | 国产不卡在线观看视频 | 国产在线a视频 | 亚洲免费公开视频 | 国产在线播放一区二区三区 | www.久久爱.cn | 天天射天天爱天天干 | 五月婷婷综合在线视频 | 波多野结衣视频一区二区 | 亚洲天堂在线观看完整版 | 国产成人久久 | 视频在线日韩 | 96亚洲精品久久 | 天天看天天干天天操 | 精品主播网红福利资源观看 | 日本夜夜草视频网站 | 天天色天天爱天天射综合 | www.狠狠操.com| 狂野欧美激情性xxxx | 五月婷婷伊人网 | 绯色av一区 | 亚洲成aⅴ人片久久青草影院 | 国产精品激情在线观看 | 91看片淫黄大片在线播放 | 在线国产精品视频 | 国产精品免费av | 色噜噜日韩精品一区二区三区视频 | 久久99精品久久久久久清纯直播 | 国产99中文字幕 | 亚洲精品乱码白浆高清久久久久久 | 国产欧美在线一区二区三区 | 日韩精品2区| 日韩一区二区免费播放 | 在线观看成人小视频 | 成年人国产在线观看 | av在线不卡观看 | 日本女人逼 | 99精品视频免费全部在线 | 色悠悠久久综合 | 美女视频黄免费的久久 | 97国产情侣爱久久免费观看 | 欧美国产精品久久久久久免费 | www.天天干.com| www.激情五月.com | 韩国av电影在线观看 | 国产精品18久久久久久久久 | 中文字幕三区 | 欧美精品生活片 | 久久成熟 | 日韩成人免费观看 | 久久最新视频 | 亚洲欧美成人综合 | 91麻豆精品久久久久久 | 中文免费在线观看 | 久久久国产一区 | 天天躁日日躁狠狠 | 中文国产成人精品久久一 | 国产啊v在线| 午夜999| 在线黄频 | 日韩av影视在线观看 | 在线观看岛国av | 亚洲 成人 一区 | 久草综合视频 | 久久久精品小视频 | 99视频精品全部免费 在线 | 欧美最爽乱淫视频播放 | 天天狠狠| 亚洲一区二区视频在线播放 | 久久96国产精品久久99软件 | 黄色一级在线免费观看 | 成人福利在线观看 | 婷婷去俺也去六月色 | 国产精品18久久久久久久久久久久 | 国产午夜一区 | 成人久久18免费网站麻豆 | 五月婷婷另类国产 | 一区二区中文字幕在线观看 | 色视频网页 | 国产美腿白丝袜足在线av | 五月婷婷久 | 日韩网站免费观看 | 在线草| 亚洲码国产日韩欧美高潮在线播放 | 一区二区三区精品久久久 | 又黄又爽又无遮挡免费的网站 | 国产精品入口麻豆www | 91在线区| 国产精品毛片一区二区三区 | 91免费国产在线观看 | 久久国产高清 | av青草 | 国产不卡在线观看 | 亚洲国产精品女人久久久 | www最近高清中文国语在线观看 | 成 人 黄 色 视频免费播放 | 成人h在线观看 | 天天爱天天射天天干天天 | 久久黄色影院 | 欧洲精品亚洲精品 | 久久久精品视频成人 | 久久这里只有精品1 | 美女一区网站 | 欧美日韩国产精品爽爽 | 人人爽人人爽人人片 | www.久久91 | 18性欧美xxxⅹ性满足 | 天天超碰| 狠狠的日日 | 国产色在线,com | aaa亚洲精品一二三区 | 91成人网在线观看 |