工具類之SpannableStringUtils

工具類之SpannableStringUtils(相信你會愛上它)

字數(shù)412閱讀709評論13喜歡33

這個工具類真是構思了良久才設計出來厅缺,采用了建造者模式,然后你們就可以用鏈式調(diào)用了符衔,talk is cheap, let me show the demo.

demo

code

有沒有心動一下哈奈辰,下面就讓老司機為你們開路峻呛。

站點

SpannableString相關工具類→SpannableStringUtils.javaDemo

getBuilder? ? ? ? : 獲取建造者setFlag? ? ? ? ? : 設置標識setForegroundColor: 設置前景色setBackgroundColor: 設置背景色setQuoteColor? ? : 設置引用線的顏色setLeadingMargin? : 設置縮進setBullet? ? ? ? : 設置列表標記setProportion? ? : 設置字體比例setXProportion? ? : 設置字體橫向比例setStrikethrough? : 設置刪除線setUnderline? ? ? : 設置下劃線setSuperscript? ? : 設置上標setSubscript? ? ? : 設置下標setBold? ? ? ? ? : 設置粗體setItalic? ? ? ? : 設置斜體setBoldItalic? ? : 設置粗斜體setFontFamily? ? : 設置字體setAlign? ? ? ? ? : 設置對齊setBitmap? ? ? ? : 設置圖片setDrawable? ? ? : 設置圖片setUri? ? ? ? ? ? : 設置圖片setResourceId? ? : 設置圖片setClickSpan? ? ? : 設置點擊事件setUrl? ? ? ? ? ? : 設置超鏈接setBlur? ? ? ? ? : 設置模糊append? ? ? ? ? ? : 追加樣式字符串create? ? ? ? ? ? : 創(chuàng)建樣式字符串

具體路線

packagecom.blankj.utilcode.utils;importandroid.graphics.Bitmap;importandroid.graphics.BlurMaskFilter;importandroid.graphics.Typeface;importandroid.graphics.drawable.Drawable;importandroid.net.Uri;importandroid.support.annotation.ColorInt;importandroid.support.annotation.DrawableRes;importandroid.support.annotation.NonNull;importandroid.support.annotation.Nullable;importandroid.text.Layout.Alignment;importandroid.text.SpannableStringBuilder;importandroid.text.Spanned;importandroid.text.style.AlignmentSpan;importandroid.text.style.BackgroundColorSpan;importandroid.text.style.BulletSpan;importandroid.text.style.ClickableSpan;importandroid.text.style.ForegroundColorSpan;importandroid.text.style.ImageSpan;importandroid.text.style.LeadingMarginSpan;importandroid.text.style.MaskFilterSpan;importandroid.text.style.QuoteSpan;importandroid.text.style.RelativeSizeSpan;importandroid.text.style.ScaleXSpan;importandroid.text.style.StrikethroughSpan;importandroid.text.style.StyleSpan;importandroid.text.style.SubscriptSpan;importandroid.text.style.SuperscriptSpan;importandroid.text.style.TypefaceSpan;importandroid.text.style.URLSpan;importandroid.text.style.UnderlineSpan;importstaticandroid.graphics.BlurMaskFilter.Blur;/**

*

*? ? author: Blankj

*? ? blog? : http://blankj.com

*? ? time? : 16/12/13

*? ? desc? : SpannableString相關工具類

*

*/publicclassSpannableStringUtils{privateSpannableStringUtils(){thrownewUnsupportedOperationException("u can't instantiate me...");? ? }/**? ? * 獲取建造者? ? *? ? *@return{@linkBuilder}? ? */publicstaticBuildergetBuilder(@NonNull CharSequence text){returnnewBuilder(text);? ? }publicstaticclassBuilder{privateintdefaultValue =0x12000000;privateCharSequence text;privateintflag;@ColorIntprivateintforegroundColor;@ColorIntprivateintbackgroundColor;@ColorIntprivateintquoteColor;privatebooleanisLeadingMargin;privateintfirst;privateintrest;privatebooleanisBullet;privateintgapWidth;privateintbulletColor;privatefloatproportion;privatefloatxProportion;privatebooleanisStrikethrough;privatebooleanisUnderline;privatebooleanisSuperscript;privatebooleanisSubscript;privatebooleanisBold;privatebooleanisItalic;privatebooleanisBoldItalic;privateString? ? fontFamily;privateAlignment align;privatebooleanimageIsBitmap;privateBitmap? bitmap;privatebooleanimageIsDrawable;privateDrawable drawable;privatebooleanimageIsUri;privateUri? ? ? uri;privatebooleanimageIsResourceId;@DrawableResprivateintresourceId;privateClickableSpan clickSpan;privateString? ? ? ? url;privatebooleanisBlur;privatefloatradius;privateBlur? ? style;privateSpannableStringBuilder mBuilder;privateBuilder(@NonNull CharSequence text){this.text = text;? ? ? ? ? ? flag = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;? ? ? ? ? ? foregroundColor = defaultValue;? ? ? ? ? ? backgroundColor = defaultValue;? ? ? ? ? ? quoteColor = defaultValue;? ? ? ? ? ? proportion = -1;? ? ? ? ? ? xProportion = -1;? ? ? ? ? ? mBuilder =newSpannableStringBuilder();? ? ? ? }/**? ? ? ? * 設置標識? ? ? ? *? ? ? ? *@paramflag

    ? ? ? ? *? ? ? ? ? ?
  • {@linkSpanned#SPAN_INCLUSIVE_EXCLUSIVE}
  • ? ? ? ? *? ? ? ? ? ?
  • {@linkSpanned#SPAN_INCLUSIVE_INCLUSIVE}
  • ? ? ? ? *? ? ? ? ? ?
  • {@linkSpanned#SPAN_EXCLUSIVE_EXCLUSIVE}
  • ? ? ? ? *? ? ? ? ? ?
  • {@linkSpanned#SPAN_EXCLUSIVE_INCLUSIVE}
  • ? ? ? ? *? ? ? ? ? ?
? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetFlag(intflag){this.flag = flag;returnthis;? ? ? ? }/**? ? ? ? * 設置前景色? ? ? ? *? ? ? ? *@paramcolor 前景色? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetForegroundColor(@ColorIntintcolor){this.foregroundColor = color;returnthis;? ? ? ? }/**? ? ? ? * 設置背景色? ? ? ? *? ? ? ? *@paramcolor 背景色? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetBackgroundColor(@ColorIntintcolor){this.backgroundColor = color;returnthis;? ? ? ? }/**? ? ? ? * 設置引用線的顏色? ? ? ? *? ? ? ? *@paramcolor 引用線的顏色? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetQuoteColor(@ColorIntintcolor){this.quoteColor = color;returnthis;? ? ? ? }/**? ? ? ? * 設置縮進? ? ? ? *? ? ? ? *@paramfirst 首行縮進? ? ? ? *@paramrest? 剩余行縮進? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetLeadingMargin(intfirst,intrest){this.first = first;this.rest = rest;? ? ? ? ? ? isLeadingMargin =true;returnthis;? ? ? ? }/**? ? ? ? * 設置列表標記? ? ? ? *? ? ? ? *@paramgapWidth 列表標記和文字間距離? ? ? ? *@paramcolor? ? 列表標記的顏色? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetBullet(intgapWidth,intcolor){this.gapWidth = gapWidth;? ? ? ? ? ? bulletColor = color;? ? ? ? ? ? isBullet =true;returnthis;? ? ? ? }/**? ? ? ? * 設置字體比例? ? ? ? *? ? ? ? *@paramproportion 比例? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetProportion(floatproportion){this.proportion = proportion;returnthis;? ? ? ? }/**? ? ? ? * 設置字體橫向比例? ? ? ? *? ? ? ? *@paramproportion 比例? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetXProportion(floatproportion){this.xProportion = proportion;returnthis;? ? ? ? }/**? ? ? ? * 設置刪除線? ? ? ? *? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetStrikethrough(){this.isStrikethrough =true;returnthis;? ? ? ? }/**? ? ? ? * 設置下劃線? ? ? ? *? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetUnderline(){this.isUnderline =true;returnthis;? ? ? ? }/**? ? ? ? * 設置上標? ? ? ? *? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetSuperscript(){this.isSuperscript =true;returnthis;? ? ? ? }/**? ? ? ? * 設置下標? ? ? ? *? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetSubscript(){this.isSubscript =true;returnthis;? ? ? ? }/**? ? ? ? * 設置粗體? ? ? ? *? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetBold(){? ? ? ? ? ? isBold =true;returnthis;? ? ? ? }/**? ? ? ? * 設置斜體? ? ? ? *? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetItalic(){? ? ? ? ? ? isItalic =true;returnthis;? ? ? ? }/**? ? ? ? * 設置粗斜體? ? ? ? *? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetBoldItalic(){? ? ? ? ? ? isBoldItalic =true;returnthis;? ? ? ? }/**? ? ? ? * 設置字體? ? ? ? *? ? ? ? *@paramfontFamily 字體? ? ? ? *? ? ? ? ? ? ? ? ?
    ? ? ? ? *? ? ? ? ? ? ? ? ?
  • monospace
  • ? ? ? ? *? ? ? ? ? ? ? ? ?
  • serif
  • ? ? ? ? *? ? ? ? ? ? ? ? ?
  • sans-serif
  • ? ? ? ? *? ? ? ? ? ? ? ? ?
? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetFontFamily(@Nullable String fontFamily){this.fontFamily = fontFamily;returnthis;? ? ? ? }/**? ? ? ? * 設置對齊? ? ? ? *
    ? ? ? ? *
  • {@linkAlignment#ALIGN_NORMAL}正常
  • ? ? ? ? *
  • {@linkAlignment#ALIGN_OPPOSITE}相反
  • ? ? ? ? *
  • {@linkAlignment#ALIGN_CENTER}居中
  • ? ? ? ? *
? ? ? ? *? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetAlign(@Nullable Alignment align){this.align = align;returnthis;? ? ? ? }/**? ? ? ? * 設置圖片? ? ? ? *? ? ? ? *@parambitmap 圖片位圖? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetBitmap(@NonNull Bitmap bitmap){this.bitmap = bitmap;? ? ? ? ? ? imageIsBitmap =true;returnthis;? ? ? ? }/**? ? ? ? * 設置圖片? ? ? ? *? ? ? ? *@paramdrawable 圖片資源? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetDrawable(@NonNull Drawable drawable){this.drawable = drawable;? ? ? ? ? ? imageIsDrawable =true;returnthis;? ? ? ? }/**? ? ? ? * 設置圖片? ? ? ? *? ? ? ? *@paramuri 圖片uri? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetUri(@NonNull Uri uri){this.uri = uri;? ? ? ? ? ? imageIsUri =true;returnthis;? ? ? ? }/**? ? ? ? * 設置圖片? ? ? ? *? ? ? ? *@paramresourceId 圖片資源id? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetResourceId(@DrawableResintresourceId){this.resourceId = resourceId;? ? ? ? ? ? imageIsResourceId =true;returnthis;? ? ? ? }/**? ? ? ? * 設置點擊事件? ? ? ? *

需添加view.setMovementMethod(LinkMovementMethod.getInstance())

? ? ? ? *@paramclickSpan 點擊事件? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetClickSpan(@NonNull ClickableSpan clickSpan){this.clickSpan = clickSpan;returnthis;? ? ? ? }/**? ? ? ? * 設置超鏈接? ? ? ? *

需添加view.setMovementMethod(LinkMovementMethod.getInstance())

? ? ? ? *? ? ? ? *@paramurl 超鏈接? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetUrl(@NonNull String url){this.url = url;returnthis;? ? ? ? }/**? ? ? ? * 設置模糊? ? ? ? *

尚存bug罗售,其他地方存在相同的字體的話,相同字體出現(xiàn)在之前的話那么就不會模糊钩述,出現(xiàn)在之后的話那會一起模糊

? ? ? ? *

推薦還是把所有字體都模糊這樣使用

? ? ? ? *? ? ? ? *@paramradius 模糊半徑(需大于0)? ? ? ? *@paramstyle? 模糊樣式
    ? ? ? ? *? ? ? ? ? ? ?
  • {@linkBlur#NORMAL}
  • ? ? ? ? *? ? ? ? ? ? ?
  • {@linkBlur#SOLID}
  • ? ? ? ? *? ? ? ? ? ? ?
  • {@linkBlur#OUTER}
  • ? ? ? ? *? ? ? ? ? ? ?
  • {@linkBlur#INNER}
  • ? ? ? ? *? ? ? ? ? ? ?
? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuildersetBlur(floatradius, Blur style){this.radius = radius;this.style = style;this.isBlur =true;returnthis;? ? ? ? }/**? ? ? ? * 追加樣式字符串? ? ? ? *? ? ? ? *@paramtext 樣式字符串文本? ? ? ? *@return{@linkBuilder}? ? ? ? */publicBuilderappend(@NonNull CharSequence text){? ? ? ? ? ? setSpan();this.text = text;returnthis;? ? ? ? }/**? ? ? ? * 創(chuàng)建樣式字符串? ? ? ? *? ? ? ? *@return樣式字符串? ? ? ? */publicSpannableStringBuildercreate(){? ? ? ? ? ? setSpan();returnmBuilder;? ? ? ? }/**

* 設置樣式

*/privatevoidsetSpan(){intstart = mBuilder.length();? ? ? ? ? ? mBuilder.append(this.text);intend = mBuilder.length();if(foregroundColor != defaultValue) {? ? ? ? ? ? ? ? mBuilder.setSpan(newForegroundColorSpan(foregroundColor), start, end, flag);? ? ? ? ? ? ? ? foregroundColor = defaultValue;? ? ? ? ? ? }if(backgroundColor != defaultValue) {? ? ? ? ? ? ? ? mBuilder.setSpan(newBackgroundColorSpan(backgroundColor), start, end, flag);? ? ? ? ? ? ? ? backgroundColor = defaultValue;? ? ? ? ? ? }if(isLeadingMargin) {? ? ? ? ? ? ? ? mBuilder.setSpan(newLeadingMarginSpan.Standard(first, rest), start, end, flag);? ? ? ? ? ? ? ? isLeadingMargin =false;? ? ? ? ? ? }if(quoteColor != defaultValue) {? ? ? ? ? ? ? ? mBuilder.setSpan(newQuoteSpan(quoteColor), start, end,0);? ? ? ? ? ? ? ? quoteColor = defaultValue;? ? ? ? ? ? }if(isBullet) {? ? ? ? ? ? ? ? mBuilder.setSpan(newBulletSpan(gapWidth, bulletColor), start, end,0);? ? ? ? ? ? ? ? isBullet =false;? ? ? ? ? ? }if(proportion != -1) {? ? ? ? ? ? ? ? mBuilder.setSpan(newRelativeSizeSpan(proportion), start, end, flag);? ? ? ? ? ? ? ? proportion = -1;? ? ? ? ? ? }if(xProportion != -1) {? ? ? ? ? ? ? ? mBuilder.setSpan(newScaleXSpan(xProportion), start, end, flag);? ? ? ? ? ? ? ? xProportion = -1;? ? ? ? ? ? }if(isStrikethrough) {? ? ? ? ? ? ? ? mBuilder.setSpan(newStrikethroughSpan(), start, end, flag);? ? ? ? ? ? ? ? isStrikethrough =false;? ? ? ? ? ? }if(isUnderline) {? ? ? ? ? ? ? ? mBuilder.setSpan(newUnderlineSpan(), start, end, flag);? ? ? ? ? ? ? ? isUnderline =false;? ? ? ? ? ? }if(isSuperscript) {? ? ? ? ? ? ? ? mBuilder.setSpan(newSuperscriptSpan(), start, end, flag);? ? ? ? ? ? ? ? isSuperscript =false;? ? ? ? ? ? }if(isSubscript) {? ? ? ? ? ? ? ? mBuilder.setSpan(newSubscriptSpan(), start, end, flag);? ? ? ? ? ? ? ? isSubscript =false;? ? ? ? ? ? }if(isBold) {? ? ? ? ? ? ? ? mBuilder.setSpan(newStyleSpan(Typeface.BOLD), start, end, flag);? ? ? ? ? ? ? ? isBold =false;? ? ? ? ? ? }if(isItalic) {? ? ? ? ? ? ? ? mBuilder.setSpan(newStyleSpan(Typeface.ITALIC), start, end, flag);? ? ? ? ? ? ? ? isItalic =false;? ? ? ? ? ? }if(isBoldItalic) {? ? ? ? ? ? ? ? mBuilder.setSpan(newStyleSpan(Typeface.BOLD_ITALIC), start, end, flag);? ? ? ? ? ? ? ? isBoldItalic =false;? ? ? ? ? ? }if(fontFamily !=null) {? ? ? ? ? ? ? ? mBuilder.setSpan(newTypefaceSpan(fontFamily), start, end, flag);? ? ? ? ? ? ? ? fontFamily =null;? ? ? ? ? ? }if(align !=null) {? ? ? ? ? ? ? ? mBuilder.setSpan(newAlignmentSpan.Standard(align), start, end, flag);? ? ? ? ? ? ? ? align =null;? ? ? ? ? ? }if(imageIsBitmap || imageIsDrawable || imageIsUri || imageIsResourceId) {if(imageIsBitmap) {? ? ? ? ? ? ? ? ? ? mBuilder.setSpan(newImageSpan(Utils.context, bitmap), start, end, flag);? ? ? ? ? ? ? ? ? ? bitmap =null;? ? ? ? ? ? ? ? ? ? imageIsBitmap =false;? ? ? ? ? ? ? ? }elseif(imageIsDrawable) {? ? ? ? ? ? ? ? ? ? mBuilder.setSpan(newImageSpan(drawable), start, end, flag);? ? ? ? ? ? ? ? ? ? drawable =null;? ? ? ? ? ? ? ? ? ? imageIsDrawable =false;? ? ? ? ? ? ? ? }elseif(imageIsUri) {? ? ? ? ? ? ? ? ? ? mBuilder.setSpan(newImageSpan(Utils.context, uri), start, end, flag);? ? ? ? ? ? ? ? ? ? uri =null;? ? ? ? ? ? ? ? ? ? imageIsUri =false;? ? ? ? ? ? ? ? }else{? ? ? ? ? ? ? ? ? ? mBuilder.setSpan(newImageSpan(Utils.context, resourceId), start, end, flag);? ? ? ? ? ? ? ? ? ? resourceId =0;? ? ? ? ? ? ? ? ? ? imageIsResourceId =false;? ? ? ? ? ? ? ? }? ? ? ? ? ? }if(clickSpan !=null) {? ? ? ? ? ? ? ? mBuilder.setSpan(clickSpan, start, end, flag);? ? ? ? ? ? ? ? clickSpan =null;? ? ? ? ? ? }if(url !=null) {? ? ? ? ? ? ? ? mBuilder.setSpan(newURLSpan(url), start, end, flag);? ? ? ? ? ? ? ? url =null;? ? ? ? ? ? }if(isBlur) {? ? ? ? ? ? ? ? mBuilder.setSpan(newMaskFilterSpan(newBlurMaskFilter(radius, style)), start, end, flag);? ? ? ? ? ? ? ? isBlur =false;? ? ? ? ? ? }? ? ? ? ? ? flag = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;? ? ? ? }? ? }}

終點站

為了能讓乘客們調(diào)用地爽快與滿意寨躁,我真是把能囊括的span都收納過來了,終點站到了牙勘,如果對本次旅途滿意的話职恳,請給五星好評哦,畢竟老司機這次真的犧牲了很多時間與精力才換來這么一份精良的工具類方面,如果該工具類依賴其他工具類放钦,都可以在我的Android開發(fā)人員不得不收集的代碼(持續(xù)更新中)中找到。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恭金,一起剝皮案震驚了整個濱河市操禀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌横腿,老刑警劉巖床蜘,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辙培,死亡現(xiàn)場離奇詭異,居然都是意外死亡邢锯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門搀别,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丹擎,“玉大人,你說我怎么就攤上這事歇父〉倥啵” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵榜苫,是天一觀的道長护戳。 經(jīng)常有香客問我,道長垂睬,這世上最難降的妖魔是什么媳荒? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮驹饺,結果婚禮上钳枕,老公的妹妹穿的比我還像新娘。我一直安慰自己赏壹,他們只是感情好鱼炒,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝌借,像睡著了一般昔瞧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上菩佑,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天自晰,我揣著相機與錄音,去河邊找鬼擎鸠。 笑死缀磕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的劣光。 我是一名探鬼主播袜蚕,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绢涡!你這毒婦竟也來了牲剃?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤雄可,失蹤者是張志新(化名)和其女友劉穎凿傅,沒想到半個月后缠犀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡聪舒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年辨液,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱残。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡滔迈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出被辑,到底是詐尸還是另有隱情燎悍,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布盼理,位于F島的核電站谈山,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏宏怔。R本人自食惡果不足惜奏路,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望举哟。 院中可真熱鬧思劳,春花似錦、人聲如沸妨猩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壶硅。三九已至威兜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庐椒,已是汗流浹背椒舵。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留约谈,地道東北人笔宿。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像棱诱,于是被迫代替她去往敵國和親泼橘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容