探索生成有數(shù)字的圖片以及在圖片的右上角畫小圓形狀態(tài)標(biāo)志等

在Android開(kāi)發(fā)中經(jīng)常需要圖標(biāo)上以及甚至在應(yīng)用圖標(biāo)的快捷方式上顯示數(shù)字憨奸,表示未讀消息數(shù)以及在以及在某條信息右上角標(biāo)志小圓形,表示這條消息是未讀的狀態(tài)等等锚赤,之前對(duì)此內(nèi)容不熟悉的時(shí)候也表示困擾匹舞,現(xiàn)在對(duì)圖片一些操作也寫在一個(gè)工具類中,以方便調(diào)用线脚。
按照慣例先來(lái)看一下最終效果圖:



BitmapUtil.class

package com.xiaolijuan.bitmapdome.utils;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Typeface;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RoundRectShape;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.TypedValue;

/**
 * @author: xiaolijuan
 * @description: 圖片工具類
 * @projectName: BitmapDome
 * @date: 2016-01-19
 * @time: 21:48
 */
public class BitmapUtil {
    // 默認(rèn)圓角半徑
    private static final int DEFAULT_CORNER_RADIUS_DIP = 8;
    // 默認(rèn)邊框?qū)挾?    private static final int DEFAULT_STROKE_WIDTH_DIP = 2;
    // 邊框的顏色
    private static final int DEFAULT_STROKE_COLOR = Color.WHITE;
    // 中間數(shù)字的顏色
    private static final int DEFAULT_NUM_COLOR = Color.parseColor("#CCFF0000");

    /**
     * 生成有數(shù)字的圖片(沒(méi)有邊框)
     *
     * @param context   上下文
     * @param icon      圖片
     * @param isShowNum 是否要繪制數(shù)字
     * @param num       數(shù)字字符串:整型數(shù)字 超過(guò)99赐稽,顯示為"99+"
     * @return 重新生成帶數(shù)字的圖片
     */
    public static Bitmap generatorNumIcon2(Context context, Bitmap icon,
                                           boolean isShowNum, String num) {

        DisplayMetrics dm = context.getResources().getDisplayMetrics();
        // 基準(zhǔn)屏幕密度
        float baseDensity = 2.3f;
        float factor = dm.density / baseDensity;

        // 初始化畫布
        int iconSize = (int) context.getResources().getDimension(
                android.R.dimen.app_icon_size);
        Bitmap numIcon = Bitmap.createBitmap(iconSize, iconSize,
                Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(numIcon);

        // 拷貝圖片
        Paint iconPaint = new Paint();
        iconPaint.setDither(true);// 防抖動(dòng)
        iconPaint.setFilterBitmap(true);// 用來(lái)對(duì)Bitmap進(jìn)行濾波處理,這樣浑侥,當(dāng)你選擇Drawable時(shí)姊舵,會(huì)有抗鋸齒的效果
        Rect src = new Rect(0, 0, icon.getWidth(), icon.getHeight());
        Rect dst = new Rect(0, 0, iconSize, iconSize);
        canvas.drawBitmap(icon, src, dst, iconPaint);

        if (isShowNum) {

            if (TextUtils.isEmpty(num)) {
                num = "0";
            }

            if (!TextUtils.isDigitsOnly(num)) {
                // 非數(shù)字
                num = "0";
            }

            int numInt = Integer.valueOf(num);

            if (numInt > 99) {// 超過(guò)99
                num = "99+";
            }

            // 啟用抗鋸齒和使用設(shè)備的文本字體大小
            // 測(cè)量文本占用的寬度
            Paint numPaint = new Paint(Paint.ANTI_ALIAS_FLAG
                    | Paint.DEV_KERN_TEXT_FLAG);
            numPaint.setColor(Color.WHITE);
            numPaint.setTextSize(20f * factor);
            numPaint.setTypeface(Typeface.DEFAULT_BOLD);
            int textWidth = (int) numPaint.measureText(num, 0, num.length());

            /**
             * 繪制圓角矩形背景
             */
            int backgroundHeight = (int) (2 * 15 * factor);
            int backgroundWidth = textWidth > backgroundHeight ? (int) (textWidth + 10 * factor)
                    : backgroundHeight;//圓角矩形背景的寬度

            canvas.save();// 保存狀態(tài)

            ShapeDrawable drawable = getDefaultBackground(context);
            drawable.setIntrinsicHeight(backgroundHeight);
            drawable.setIntrinsicWidth(backgroundWidth);
            drawable.setBounds(0, 0, backgroundWidth, backgroundHeight);
            canvas.translate(iconSize - backgroundWidth, 0);
            drawable.draw(canvas);

            canvas.restore();// 重置為之前保存的狀態(tài)

            // 繪制數(shù)字
            canvas.drawText(num,
                    (float) (iconSize - (backgroundWidth + textWidth) / 2),
                    22 * factor, numPaint);
        }
        return numIcon;
    }

    /**
     * 生成有數(shù)字的圖片(有邊框的)
     *
     * @param context   上下文
     * @param icon      圖片
     * @param isShowNum 是否要繪制數(shù)字
     * @param num       數(shù)字字符串:整型數(shù)字 超過(guò)99,顯示為"99+"
     * @return 重新生成帶數(shù)字的圖片
     */
    public static Bitmap generatorNumIcon3(Context context, Bitmap icon,
                                           boolean isShowNum, String num) {

        DisplayMetrics dm = context.getResources().getDisplayMetrics();
        // 基準(zhǔn)屏幕密度
        float baseDensity = 2.2f;
        float factor = dm.density / baseDensity;

        // 初始化畫布
        int iconSize = (int) context.getResources().getDimension(
                android.R.dimen.app_icon_size);

        Bitmap numIcon = Bitmap.createBitmap(iconSize, iconSize,
                Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(numIcon);

        // 拷貝圖片
        Paint iconPaint = new Paint();
        iconPaint.setDither(true);// 防抖動(dòng)
        iconPaint.setFilterBitmap(true);// 用來(lái)對(duì)Bitmap進(jìn)行濾波處理寓落,這樣括丁,當(dāng)你選擇Drawable時(shí),會(huì)有抗鋸齒的效果
        Rect src = new Rect(0, 0, icon.getWidth(), icon.getHeight());
        Rect dst = new Rect(0, 0, iconSize, iconSize);
        canvas.drawBitmap(icon, src, dst, iconPaint);

        if (isShowNum) {

            if (TextUtils.isEmpty(num)) {
                num = "0";
            }

            if (!TextUtils.isDigitsOnly(num)) {
                // 非數(shù)字
                num = "0";
            }

            int numInt = Integer.valueOf(num);

            if (numInt > 99) {// 超過(guò)99
                num = "99+";
            }

            // 啟用抗鋸齒和使用設(shè)備的文本字體大小
            // 測(cè)量文本占用的寬度
            Paint numPaint = new Paint(Paint.ANTI_ALIAS_FLAG
                    | Paint.DEV_KERN_TEXT_FLAG);
            numPaint.setColor(Color.WHITE);
            numPaint.setTextSize(20f * factor);
            numPaint.setTypeface(Typeface.DEFAULT_BOLD);
            int textWidth = (int) numPaint.measureText(num, 0, num.length());

            /**
             * 繪制圓角矩形背景:先畫邊框伶选,再畫內(nèi)部的圓角矩形
             */
            // 圓角矩形背景的寬度
            int backgroundHeight = (int) (2 * 15 * factor);
            int backgroundWidth = textWidth > backgroundHeight ? (int) (textWidth + 10 * factor)
                    : backgroundHeight;
            // 邊框的寬度
            int strokeThickness = (int) (2 * factor);

            canvas.save();// 保存狀態(tài)

            int strokeHeight = backgroundHeight + strokeThickness * 2;
            int strokeWidth = textWidth > strokeHeight ? (int) (textWidth + 10
                    * factor + 2 * strokeThickness) : strokeHeight;
            ShapeDrawable outStroke = getDefaultStrokeDrawable(context);
            outStroke.setIntrinsicHeight(strokeHeight);
            outStroke.setIntrinsicWidth(strokeWidth);
            outStroke.setBounds(0, 0, strokeWidth, strokeHeight);
            canvas.translate(iconSize - strokeWidth - strokeThickness,
                    strokeThickness);
            outStroke.draw(canvas);

            canvas.restore();// 重置為之前保存的狀態(tài)

            canvas.save();// 保存狀態(tài)

            ShapeDrawable drawable = getDefaultBackground(context);
            drawable.setIntrinsicHeight((int) (backgroundHeight + 2 * factor));
            drawable.setIntrinsicWidth((int) (backgroundWidth + 2 * factor));
            drawable.setBounds(0, 0, backgroundWidth, backgroundHeight);
            canvas.translate(iconSize - backgroundWidth - 2 * strokeThickness,
                    2 * strokeThickness);
            drawable.draw(canvas);

            canvas.restore();// 重置為之前保存的狀態(tài)

            // 繪制數(shù)字
            canvas.drawText(
                    num,
                    (float) (iconSize
                            - (backgroundWidth + textWidth + 4 * strokeThickness)
                            / 2 - 1), (22) * factor + 2 * strokeThickness,
                    numPaint);
        }
        return numIcon;
    }


    /**
     * 圓角矩形史飞,相當(dāng)于用<shape>的xml的背景
     *
     * @param context 上下文
     * @return
     */
    private static ShapeDrawable getDefaultBackground(Context context) {

        // 這個(gè)是為了應(yīng)對(duì)不同分辨率的手機(jī),屏幕兼容性
        int r = dipToPixels(context, DEFAULT_CORNER_RADIUS_DIP);
        float[] outerR = new float[]{r, r, r, r, r, r, r, r};

        // 圓角矩形
        RoundRectShape rr = new RoundRectShape(outerR, null, null);
        ShapeDrawable drawable = new ShapeDrawable(rr);
        drawable.getPaint().setColor(DEFAULT_NUM_COLOR);// 設(shè)置顏色
        return drawable;

    }

    /**
     * 圓角矩形仰税,相當(dāng)于用<shape>的xml的背景
     *
     * @param context 上下文
     * @return
     */
    private static ShapeDrawable getDefaultStrokeDrawable(Context context) {
        // 這個(gè)是為了應(yīng)對(duì)不同分辨率的手機(jī)构资,屏幕兼容性
        int r = dipToPixels(context, DEFAULT_CORNER_RADIUS_DIP);
        int distance = dipToPixels(context, DEFAULT_STROKE_WIDTH_DIP);
        float[] outerR = new float[]{r, r, r, r, r, r, r, r};

        // 圓角矩形
        RoundRectShape rr = new RoundRectShape(outerR, null, null);
        ShapeDrawable drawable = new ShapeDrawable(rr);
        drawable.getPaint().setStrokeWidth(distance);
        drawable.getPaint().setStyle(Paint.Style.FILL);
        drawable.getPaint().setColor(DEFAULT_STROKE_COLOR);// 設(shè)置顏色
        return drawable;
    }

    /**
     * dp to px
     *
     * @param context 上下文
     * @param dip
     * @return
     */
    public static int dipToPixels(Context context, int dip) {
        Resources r = context.getResources();
        float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip,
                r.getDisplayMetrics());
        return (int) px;
    }

    /**
     * 在原圖右上角畫圓形狀態(tài)標(biāo)志,其中icon為原圖陨簇,color為所需狀態(tài)標(biāo)示的顏色吐绵,一般取值為"Color.**",r為所畫圓的半徑
     *
     * @param icon  原圖
     * @param res   獲取Resources
     * @param color 所需狀態(tài)標(biāo)示的顏色,一般取值為"Color.**"
     * @param r     所畫圓的半徑
     * @return
     */
    public static Bitmap generatorStatusIcon(Bitmap icon, Resources res,
                                             int color, int r) {
        // 初始化畫布
        int iconSize = (int) res.getDimension(android.R.dimen.app_icon_size);
        Bitmap contactIcon = Bitmap.createBitmap(iconSize, iconSize,
                Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(contactIcon);

        // 拷貝圖片
        Paint iconPaint = new Paint();
        iconPaint.setDither(true);// 防抖動(dòng)
        iconPaint.setFilterBitmap(true);// 用來(lái)對(duì)Bitmap進(jìn)行濾波處理,這樣河绽,當(dāng)你選擇Drawable時(shí)拦赠,會(huì)有抗鋸齒的效果
        Rect src = new Rect(0, 0, icon.getWidth(), icon.getHeight());
        Rect dst = new Rect(0, 0, iconSize, iconSize);
        canvas.drawBitmap(icon, src, dst, iconPaint);

        Paint countPaint = new Paint(Paint.ANTI_ALIAS_FLAG
                | Paint.DEV_KERN_TEXT_FLAG);
        countPaint.setColor(color);

        canvas.drawCircle(iconSize - r, r, r, countPaint);
        return contactIcon;
    }

    /**
     * 傳入一張Bitmap型的方形圖片使之變成圓形
     *
     * @param bitmap 圖片
     * @return
     */
    public static Bitmap makeRoundCorner(Bitmap bitmap) {
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
        int left = 0, top = 0, right = width, bottom = height;
        float roundPx = height / 2;
        if (width > height) {
            left = (width - height) / 2;
            top = 0;
            right = left + height;
            bottom = height;
        } else if (height > width) {
            left = 0;
            top = (height - width) / 2;
            right = width;
            bottom = top + width;
            roundPx = width / 2;
        }

        Bitmap output = Bitmap.createBitmap(width, height,
                Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(output);
        int color = 0xff424242;
        Paint paint = new Paint();
        Rect rect = new Rect(left, top, right, bottom);
        RectF rectF = new RectF(rect);

        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);
        return output;
    }

    /**
     * 傳入一張Bitmap型的方形圖片使之變成圓角矩形,ratio值在1以上就很明顯
     *
     * @param bitmap 圖片
     * @param ratio  比例葵姥,這里是寬高與半徑的比例
     * @return
     */
    public static Bitmap toRoundCorner(Bitmap bitmap, float ratio) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
                bitmap.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(output);

        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        final RectF rectF = new RectF(rect);

        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        canvas.drawRoundRect(rectF, bitmap.getWidth() / ratio,
                bitmap.getHeight() / ratio, paint);

        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);
        return output;
    }

    /**
     * 使bitmap圖標(biāo)邊角圓弧化荷鼠,pixels值在10以上才比較明顯,變化慢
     *
     * @param bitmap 圖片
     * @param pixels 圓角的半徑
     * @return
     */
    public static Bitmap toRoundCorner_1(Bitmap bitmap, int pixels) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
                bitmap.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(output);
        final int color = 0xff424242;
        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        final RectF rectF = new RectF(rect);
        final float roundPx = pixels;
        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);
        return output;
    }

    /**
     * 在一張背景圖片上合成四個(gè)頭像
     *
     * @param backGroundIcon 背景圖片
     * @param res            獲取Resources
     * @param first          圖片1
     * @param second         圖片2
     * @param third          圖片3
     * @param four           圖片4
     * @return
     */
    public static Bitmap add4Bitmap(Bitmap backGroundIcon, Resources res,
                                    Bitmap first, Bitmap second, Bitmap third, Bitmap four) {
        int iconSize = (int) res.getDimension(android.R.dimen.app_icon_size);
        Bitmap contactIcon = Bitmap.createBitmap(iconSize, iconSize,
                Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(contactIcon);

        Paint iconPaint = new Paint();
        iconPaint.setDither(true);// 防抖動(dòng)
        iconPaint.setFilterBitmap(true);// 用來(lái)對(duì)Bitmap進(jìn)行濾波處理榔幸,這樣允乐,當(dāng)你選擇Drawable時(shí),會(huì)有抗鋸齒的效果
        Rect src = new Rect(0, 0, backGroundIcon.getWidth(),
                backGroundIcon.getHeight());
        Rect dst = new Rect(0, 0, iconSize, iconSize);
        canvas.drawBitmap(backGroundIcon, src, dst, iconPaint);

        int width = iconSize / 2;
        int height = iconSize / 2;
        canvas.drawBitmap(pictureZoom(first, iconSize / 2, iconSize / 2), 0, 0,
                iconPaint);
        canvas.drawBitmap(pictureZoom(second, iconSize / 2, iconSize / 2),
                width, 0, iconPaint);
        canvas.drawBitmap(pictureZoom(third, iconSize / 2, iconSize / 2), 0,
                height, iconPaint);
        canvas.drawBitmap(pictureZoom(four, iconSize / 2, iconSize / 2), width,
                height, iconPaint);
        return contactIcon;
    }

    /**
     * 圖片縮放
     *
     * @param bitMap    原圖片
     * @param newWidth  新的寬
     * @param newHeight 新的高
     * @return
     */
    public static Bitmap pictureZoom(Bitmap bitMap, int newWidth, int newHeight) {

        int width = bitMap.getWidth();
        int height = bitMap.getHeight();

        // 計(jì)算縮放比例
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;

        // 取得想要縮放的matrix參數(shù)
        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth, scaleHeight);

        // 得到新的圖片
        bitMap = Bitmap.createBitmap(bitMap, 0, 0, width, height, matrix, true);

        return bitMap;
    }

    /**
     * 渲染成灰色圖片
     *
     * @param bitmap 圖片
     * @return
     */
    public static final Bitmap grey(Bitmap bitmap) {
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();

        Bitmap faceIconGreyBitmap = Bitmap.createBitmap(width, height,
                Bitmap.Config.ARGB_8888);

        Canvas canvas = new Canvas(faceIconGreyBitmap);
        Paint paint = new Paint();
        ColorMatrix colorMatrix = new ColorMatrix();
        colorMatrix.setSaturation(0);
        ColorMatrixColorFilter colorMatrixFilter = new ColorMatrixColorFilter(
                colorMatrix);
        paint.setColorFilter(colorMatrixFilter);
        canvas.drawBitmap(bitmap, 0, 0, paint);
        return faceIconGreyBitmap;
    }
}

項(xiàng)目源碼削咆,點(diǎn)擊下載

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末牍疏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拨齐,更是在濱河造成了極大的恐慌鳞陨,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞻惋,死亡現(xiàn)場(chǎng)離奇詭異厦滤,居然都是意外死亡援岩,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門掏导,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)享怀,“玉大人,你說(shuō)我怎么就攤上這事趟咆√泶桑” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵值纱,是天一觀的道長(zhǎng)鳞贷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)虐唠,這世上最難降的妖魔是什么搀愧? 我笑而不...
    開(kāi)封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮凿滤,結(jié)果婚禮上妈橄,老公的妹妹穿的比我還像新娘庶近。我一直安慰自己翁脆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布鼻种。 她就那樣靜靜地躺著反番,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叉钥。 梳的紋絲不亂的頭發(fā)上罢缸,一...
    開(kāi)封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音投队,去河邊找鬼枫疆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛敷鸦,可吹牛的內(nèi)容都是我干的息楔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼扒披,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼值依!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起碟案,我...
    開(kāi)封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤愿险,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后价说,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辆亏,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡风秤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褒链。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唁情。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖甫匹,靈堂內(nèi)的尸體忽然破棺而出甸鸟,到底是詐尸還是另有隱情,我是刑警寧澤兵迅,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布抢韭,位于F島的核電站,受9級(jí)特大地震影響恍箭,放射性物質(zhì)發(fā)生泄漏刻恭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一扯夭、第九天 我趴在偏房一處隱蔽的房頂上張望鳍贾。 院中可真熱鬧,春花似錦交洗、人聲如沸骑科。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咆爽。三九已至,卻和暖如春置森,著一層夾襖步出監(jiān)牢的瞬間斗埂,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工凫海, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呛凶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓行贪,卻偏偏與公主長(zhǎng)得像漾稀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓮顽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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