年費(fèi)比例控件

項(xiàng)目年費(fèi)控件UI圖


image.png

實(shí)現(xiàn)效果


年費(fèi).gif
控件分析(從里到外進(jìn)行分析,最后分析指針)

1柄冲、中間有個(gè)紅色圓點(diǎn),抽取顏色和半徑
2忠蝗、白色圓環(huán)现横,抽取圓環(huán)寬度、圓環(huán)顏色
3阁最、包圍白色圓環(huán)的圓環(huán)寬度和顏色
4戒祠、指針指向的圓環(huán)顏色和寬度
5、進(jìn)度圓弧的寬度速种、顏色和底色
6姜盈、最外邊的圓弧顏色和寬度
7、指針顏色配阵、長(zhǎng)度和寬度
8贩据、進(jìn)度圓弧和最外層圓弧的距離
9、包圍白色圓環(huán)的圓環(huán)和指針指向的圓環(huán)距離
10闸餐、繪制進(jìn)度圓弧的開始角度為-225饱亮,掃描的最大度數(shù)為270
11、繪制指針時(shí)舍沙、先把畫布旋轉(zhuǎn)一定的角度再繪制

自定義屬性
 <declare-styleable name="YearCostView">

        <!--centerPoint-->
        <attr name="center_point_color" format="color" />
        <attr name="center_point_radius" format="dimension" />

        <!--中間圓環(huán)的顏色和寬度-->
        <attr name="center_ring_color" format="color" />
        <attr name="center_ring_width" format="dimension" />

        <!--包裹中心圓環(huán)的圓環(huán)-->
        <attr name="wraper_center_ring_color" format="color" />
        <attr name="wraper_center_ring_width" format="dimension" />


        <!--指針-->
        <attr name="line_width" format="dimension" />
        <attr name="line_color" format="color" />


        <!--inner圓環(huán)-->
        <attr name="inner_ring_color" format="color" />
        <attr name="inner_ring_width" format="dimension" />

        <!--target圓環(huán)-->
        <attr name="target_ring_color" format="color" />
        <attr name="target_ring_width" format="dimension" />
        <attr name="target_bottom_ring_color" format="color" />

        <!--out圓環(huán)-->
        <attr name="out_ring_color" format="color" />
        <attr name="out_ring_width" format="dimension" />

        <!--距離-->
        <attr name="inner_distance" format="dimension" />
        <attr name="out_distance" format="dimension" />

    </declare-styleable>
獲取自定義屬性
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.YearCostView, defStyleAttr, 0);
        int n = a.getIndexCount();
        for (int i = 0; i < n; i++) {
            int attr = a.getIndex(i);

            switch (attr) {

                //中心圓點(diǎn)
                case R.styleable.YearCostView_center_point_radius:
                    centerPointRadius = a.getLayoutDimension(attr, centerPointRadius);
                    break;
                case R.styleable.YearCostView_center_point_color:
                    centerPointColor = a.getColor(attr, Color.parseColor("#f05b48"));
                    break;
                //中心圓環(huán)
                case R.styleable.YearCostView_center_ring_width:
                    centerRingWidth = a.getLayoutDimension(attr, centerRingWidth);
                    break;
                case R.styleable.YearCostView_center_ring_color:
                    centerRingColor = a.getColor(attr, ContextCompat.getColor(getContext(), android.R.color.white));
                    break;

                //包裹中心圓環(huán)的圓環(huán)
                case R.styleable.YearCostView_wraper_center_ring_width:
                    wraperCenterRingWidth = a.getLayoutDimension(attr, wraperCenterRingWidth);
                    break;
                case R.styleable.YearCostView_wraper_center_ring_color:
                    wraperCenterRingColor = a.getColor(attr, Color.parseColor("#35383c"));
                    break;

                //指針
                case R.styleable.YearCostView_line_width:
                    lineWidth = a.getLayoutDimension(attr, lineWidth);
                    break;
                case R.styleable.YearCostView_line_color:
                    lineColor = a.getColor(attr, Color.parseColor("#f05b48"));
                    break;

                //inner ring
                case R.styleable.YearCostView_inner_ring_width:
                    innerRingWidth = a.getLayoutDimension(attr, innerRingWidth);
                    break;
                case R.styleable.YearCostView_inner_ring_color:
                    innerRingColor = a.getColor(attr, Color.parseColor("#25292c"));
                    break;

                //target ring
                case R.styleable.YearCostView_target_ring_width:
                    targetRingWidth = a.getLayoutDimension(attr, targetRingWidth);
                    break;
                case R.styleable.YearCostView_target_ring_color:
                    targetRingColor = a.getColor(attr, Color.parseColor("#f05b48"));
                    break;
                case R.styleable.YearCostView_target_bottom_ring_color:
                    targetBottomRingColor = a.getColor(attr, Color.parseColor("#303438"));
                    break;

                //out ring
                case R.styleable.YearCostView_out_ring_width:
                    outRingWidth = a.getLayoutDimension(attr, outRingWidth);
                    break;
                case R.styleable.YearCostView_out_ring_color:
                    outRingColor = a.getColor(attr, Color.parseColor("#75777a"));
                    break;

                //距離
                case R.styleable.YearCostView_out_distance:
                    outDistance = a.getLayoutDimension(attr, outDistance);
                    break;
                case R.styleable.YearCostView_inner_distance:
                    innerDistance = a.getLayoutDimension(attr, innerDistance);
                    break;
            }
        }
        a.recycle();
自定義控件完整代碼
/**
 * 類描述:年費(fèi)View
 * 作者:xues
 * 時(shí)間:2017年09月12日
 */

public class YearCostView extends View {

    //中心圓環(huán)(白色圓環(huán))
    private Paint centerRingPaint;
    private int centerRingWidth = 2 * 6;
    private int centerRingColor;
    private RectF centerRingRectF;

    //包裹中心圓環(huán)的圓環(huán)
    private int wraperCenterRingColor;
    private Paint wraperCenterRingPaint;
    private int wraperCenterRingWidth = 4 * 6;
    private RectF wraperCenterRingRectF;


    //在目標(biāo)圓環(huán)里邊的圓環(huán)
    private int innerRingColor;
    private Paint innerRingPaint;
    private int innerRingWidth = 1 * 6;
    private RectF innerRingRectF;

    //目標(biāo)圓環(huán)(紅色圓環(huán))
    private int targetRingColor;
    private Paint targetRingPaint;
    private int targetRingWidth = 16 * 6;
    private RectF targetRingRectF;

    //目標(biāo)圓環(huán)壓著的圓環(huán)(紅色圓環(huán)壓著的圓環(huán))
    private int targetBottomRingColor;
    private Paint targetBottomRingPaint;
    private int targetBottomRingWidth = 16 * 6;
    private RectF targetBottomRingRectF;


    //在目標(biāo)圓環(huán)外面的圓環(huán)
    private int outRingColor;
    private Paint outRingPaint;
    private int outRingWidth = 1 * 6;
    private RectF outRingRectF;


    //指針
    private int lineColor;
    private Paint linePaint;
    private int lineWidth = 2 * 6;

    //中心紅點(diǎn)
    private int centerPointColor;
    private Paint centerPointPaint;
    private int centerPointRadius = 1 * 6;


    //圓環(huán)與圓環(huán)之間的距離
    private int innerDistance = 120;
    private int outDistance = 8;
    private RotateAnimation mSweepAnim;//掃描動(dòng)畫

    public YearCostView(Context context) {
        this(context, null);
    }

    public YearCostView(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public YearCostView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.YearCostView, defStyleAttr, 0);
        int n = a.getIndexCount();
        for (int i = 0; i < n; i++) {
            int attr = a.getIndex(i);

            switch (attr) {

                //中心圓點(diǎn)
                case R.styleable.YearCostView_center_point_radius:
                    centerPointRadius = a.getLayoutDimension(attr, centerPointRadius);
                    break;
                case R.styleable.YearCostView_center_point_color:
                    centerPointColor = a.getColor(attr, Color.parseColor("#f05b48"));
                    break;
                //中心圓環(huán)
                case R.styleable.YearCostView_center_ring_width:
                    centerRingWidth = a.getLayoutDimension(attr, centerRingWidth);
                    break;
                case R.styleable.YearCostView_center_ring_color:
                    centerRingColor = a.getColor(attr, ContextCompat.getColor(getContext(), android.R.color.white));
                    break;

                //包裹中心圓環(huán)的圓環(huán)
                case R.styleable.YearCostView_wraper_center_ring_width:
                    wraperCenterRingWidth = a.getLayoutDimension(attr, wraperCenterRingWidth);
                    break;
                case R.styleable.YearCostView_wraper_center_ring_color:
                    wraperCenterRingColor = a.getColor(attr, Color.parseColor("#35383c"));
                    break;

                //指針
                case R.styleable.YearCostView_line_width:
                    lineWidth = a.getLayoutDimension(attr, lineWidth);
                    break;
                case R.styleable.YearCostView_line_color:
                    lineColor = a.getColor(attr, Color.parseColor("#f05b48"));
                    break;

                //inner ring
                case R.styleable.YearCostView_inner_ring_width:
                    innerRingWidth = a.getLayoutDimension(attr, innerRingWidth);
                    break;
                case R.styleable.YearCostView_inner_ring_color:
                    innerRingColor = a.getColor(attr, Color.parseColor("#25292c"));
                    break;

                //target ring
                case R.styleable.YearCostView_target_ring_width:
                    targetRingWidth = a.getLayoutDimension(attr, targetRingWidth);
                    break;
                case R.styleable.YearCostView_target_ring_color:
                    targetRingColor = a.getColor(attr, Color.parseColor("#f05b48"));
                    break;
                case R.styleable.YearCostView_target_bottom_ring_color:
                    targetBottomRingColor = a.getColor(attr, Color.parseColor("#303438"));
                    break;

                //out ring
                case R.styleable.YearCostView_out_ring_width:
                    outRingWidth = a.getLayoutDimension(attr, outRingWidth);
                    break;
                case R.styleable.YearCostView_out_ring_color:
                    outRingColor = a.getColor(attr, Color.parseColor("#75777a"));
                    break;

                //距離
                case R.styleable.YearCostView_out_distance:
                    outDistance = a.getLayoutDimension(attr, outDistance);
                    break;
                case R.styleable.YearCostView_inner_distance:
                    innerDistance = a.getLayoutDimension(attr, innerDistance);
                    break;
            }
        }
        a.recycle();
        initView();
    }

    /**
     * 初始化參數(shù)
     */
    private void initView() {
        initPaint();
        //初始化動(dòng)畫并設(shè)置動(dòng)畫持續(xù)時(shí)間為1000毫秒==1秒
        mSweepAnim = new RotateAnimation();
        mSweepAnim.setDuration(1000);
    }

    float centerX;//中心點(diǎn)x

    //初始化矩形
    private void initRectF() {
        //中心圓環(huán)
        float leftOrTop = centerX - centerRingWidth / 2F - centerPointRadius;
        float rightOrBottom = centerX + centerRingWidth / 2F + centerPointRadius;
        centerRingRectF = new RectF(leftOrTop, leftOrTop, rightOrBottom, rightOrBottom);
        //包圍中心圓環(huán)的圓環(huán)
        leftOrTop = centerX - centerRingWidth - centerPointRadius - wraperCenterRingWidth / 2F;
        rightOrBottom = centerX + centerRingWidth + centerPointRadius + wraperCenterRingWidth / 2F;
        wraperCenterRingRectF = new RectF(leftOrTop, leftOrTop, rightOrBottom, rightOrBottom);
        //inner圓環(huán)
        leftOrTop = centerX - centerPointRadius - centerRingWidth - wraperCenterRingWidth - innerDistance - innerRingWidth / 2F;
        rightOrBottom = centerX + centerPointRadius + centerRingWidth + wraperCenterRingWidth + innerDistance + innerRingWidth / 2F;
        innerRingRectF = new RectF(leftOrTop, leftOrTop, rightOrBottom, rightOrBottom);

        //目標(biāo)圓環(huán)
        leftOrTop = centerX - centerPointRadius - centerRingWidth - wraperCenterRingWidth - innerDistance - innerRingWidth - outDistance - targetRingWidth / 2F;
        rightOrBottom = centerX + centerPointRadius + centerRingWidth + wraperCenterRingWidth + innerDistance + innerRingWidth + outDistance + targetRingWidth / 2F;
        targetRingRectF = new RectF(leftOrTop, leftOrTop, rightOrBottom, rightOrBottom);
        targetBottomRingRectF = new RectF(leftOrTop, leftOrTop, rightOrBottom, rightOrBottom);

        //out圓環(huán)
        leftOrTop = centerX - centerPointRadius - centerRingWidth - wraperCenterRingWidth - innerDistance - innerRingWidth - outDistance * 2 - targetRingWidth - outRingWidth / 2F;
        rightOrBottom = centerX + centerPointRadius + centerRingWidth + wraperCenterRingWidth + innerDistance + innerRingWidth + outDistance * 2 + targetRingWidth + outRingWidth / 2F;
        outRingRectF = new RectF(leftOrTop, leftOrTop, rightOrBottom, rightOrBottom);

    }

    /**
     * 從里邊向外初始化畫筆
     */
    private void initPaint() {
        //中心點(diǎn)
        centerPointPaint = new Paint();
        centerPointPaint.setAntiAlias(true);
        centerPointPaint.setStrokeWidth(2 * centerPointRadius);
        centerPointPaint.setColor(centerPointColor);
        centerPointPaint.setStyle(Paint.Style.FILL);
        //中心圓環(huán)
        centerRingPaint = new Paint();
        centerRingPaint.setAntiAlias(true);
        centerRingPaint.setStrokeWidth(centerRingWidth);
        centerRingPaint.setColor(centerRingColor);
        centerRingPaint.setStyle(Paint.Style.STROKE);
        //包裹中心圓環(huán)的圓環(huán)
        wraperCenterRingPaint = new Paint();
        wraperCenterRingPaint.setAntiAlias(true);
        wraperCenterRingPaint.setStrokeWidth(wraperCenterRingWidth);
        wraperCenterRingPaint.setColor(wraperCenterRingColor);
        wraperCenterRingPaint.setStyle(Paint.Style.STROKE);

        //inner圓環(huán)
        innerRingPaint = new Paint();
        innerRingPaint.setAntiAlias(true);
        innerRingPaint.setStrokeWidth(innerRingWidth);
        innerRingPaint.setColor(innerRingColor);
        innerRingPaint.setStyle(Paint.Style.STROKE);


        //目標(biāo)圓環(huán)壓住的圓環(huán)
        targetBottomRingPaint = new Paint();
        targetBottomRingPaint.setAntiAlias(true);
        targetBottomRingPaint.setStrokeWidth(targetRingWidth);
        targetBottomRingPaint.setColor(targetBottomRingColor);
        targetBottomRingPaint.setStyle(Paint.Style.STROKE);

        //目標(biāo)圓環(huán)
        targetRingPaint = new Paint();
        targetRingPaint.setAntiAlias(true);
        targetRingPaint.setStrokeWidth(targetRingWidth);
        targetRingPaint.setColor(targetRingColor);
        targetRingPaint.setStyle(Paint.Style.STROKE);

        //外部圓環(huán)
        outRingPaint = new Paint();
        outRingPaint.setAntiAlias(true);
        outRingPaint.setStrokeWidth(outRingWidth);
        outRingPaint.setColor(outRingColor);
        outRingPaint.setStyle(Paint.Style.STROKE);

        //指針
        linePaint = new Paint();
        linePaint.setAntiAlias(true);
        linePaint.setStrokeWidth(lineWidth);
        linePaint.setColor(lineColor);
        linePaint.setStyle(Paint.Style.FILL);

    }


    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        int widthSize = MeasureSpec.getSize(widthMeasureSpec);
        int widthMode = MeasureSpec.getMode(widthMeasureSpec);
        int wSize = 0;


        //match_parent or set value
        if (widthMode == MeasureSpec.EXACTLY) {
            wSize = widthSize;
        } else {
            //wrap_content
            if (widthMode == MeasureSpec.AT_MOST) {
                wSize = 2 * (centerPointRadius + centerRingWidth + wraperCenterRingWidth + innerDistance + innerRingWidth + outDistance * 2 + targetRingWidth);
            }
        }


        int heightSize = MeasureSpec.getSize(heightMeasureSpec);
        int heightMode = MeasureSpec.getMode(heightMeasureSpec);
        int hSize = 0;

        //match_parent or set value
        if (heightMode == MeasureSpec.EXACTLY) {
            hSize = heightSize;
        } else {
            //wrap_content
            if (heightMode == MeasureSpec.AT_MOST) {
                hSize = 2 * (centerPointRadius + centerRingWidth + wraperCenterRingWidth + innerDistance + innerRingWidth + outDistance * 2 + targetRingWidth);
                ;
            }
        }

        centerX = widthSize / 2f;
        initRectF();//初始化灰色圓環(huán)和多顏色圓環(huán)矩形
        setMeasuredDimension(wSize, hSize);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);


        //繪制中心點(diǎn)
        canvas.save();
        canvas.restore();

        //繪制包裹中心圓環(huán)的圓環(huán)
        canvas.save();
        canvas.drawArc(wraperCenterRingRectF, 0, 360, false, wraperCenterRingPaint);
        canvas.restore();

        //繪制inner圓環(huán)
        canvas.save();
        canvas.drawArc(innerRingRectF, 0, 360, false, innerRingPaint);
        canvas.restore();
        //繪制指針
        canvas.save();
        canvas.translate(centerX, centerX);
        canvas.rotate(mSweepAngle + 135);
        canvas.drawLine(-2, -2, centerPointRadius + centerRingWidth + wraperCenterRingWidth + innerDistance + innerRingWidth, 0, linePaint);
        canvas.restore();

        //繪制中心圓環(huán)
        canvas.save();
        canvas.drawArc(centerRingRectF, 0, 360, false, centerRingPaint);
        canvas.restore();


        //繪制紅色圓點(diǎn)
        canvas.save();
        canvas.drawCircle(centerX, centerX, centerPointRadius, centerPointPaint);
        canvas.restore();


        //繪制目標(biāo)圓環(huán)壓住的圓環(huán)
        canvas.save();
        canvas.drawArc(targetBottomRingRectF, -225, 270, false, targetBottomRingPaint);
        canvas.restore();

        //繪制目標(biāo)圓環(huán)
        canvas.save();
        canvas.drawArc(targetRingRectF, -225, mSweepAngle, false, targetRingPaint);
        canvas.restore();


        //繪制out圓環(huán)
        canvas.save();
        canvas.drawArc(outRingRectF, -226, 272, false, outRingPaint);
        canvas.restore();
    }


    float mSweepAngle;

    /**
     * 自定義旋轉(zhuǎn)動(dòng)畫
     */
    public class RotateAnimation extends Animation {
        /**
         * Initializes expand collapse animation, has two types, collapse (1) and expand (0).
         */
        public RotateAnimation() {
        }

        @Override
        protected void applyTransformation(float interpolatedTime, Transformation t) {
            super.applyTransformation(interpolatedTime, t);
            //interpolatedTime 范圍:0到1
            mSweepAngle = BigDecimalUtil.mul(interpolatedTime, BigDecimalUtil.mul(BigDecimalUtil.div(curMoney, totalMoney), 270F));//當(dāng)前時(shí)間掃描的角度
            postInvalidate();//重繪
        }
    }


    float curMoney, totalMoney;

    /**
     * 設(shè)置價(jià)格
     *
     * @param curMoney   當(dāng)前價(jià)格
     * @param totalMoney 總金額
     */
    public void setMoney(float curMoney, float totalMoney) {
        this.curMoney = curMoney;
        this.totalMoney = totalMoney;
        startAnimation(mSweepAnim);
    }
}
使用篇

在布局中使用自定義控件

<包名.YearCostView
        android:id="@+id/yearCostView"
        android:layout_width="@dimen/px480dp"
        android:layout_height="@dimen/px480dp"
        android:layout_gravity="center"
        android:background="#191d21"
        app:center_point_color="#f05b48"
        app:center_point_radius="@dimen/px6dp"
        app:center_ring_color="#ffffff"
        app:center_ring_width="@dimen/px6dp"
        app:inner_distance="@dimen/px100dp"
        app:inner_ring_color="#25292c"
        app:inner_ring_width="@dimen/px2dp"
        app:line_color="#f05b48"
        app:line_width="@dimen/px6dp"
        app:out_distance="@dimen/px10dp"
        app:out_ring_color="#75777a"
        app:out_ring_width="@dimen/px2dp"
        app:target_bottom_ring_color="#303438"
        app:target_ring_color="#f05b48"
        app:target_ring_width="@dimen/px64dp"
        app:wraper_center_ring_color="#35383c"
        app:wraper_center_ring_width="@dimen/px12dp" />

在Activity中設(shè)置價(jià)格

yearCostView.setMoney(135,270);//左側(cè)為當(dāng)前金額近上,右側(cè)為總金額
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拂铡,隨后出現(xiàn)的幾起案子壹无,更是在濱河造成了極大的恐慌,老刑警劉巖感帅,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斗锭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡失球,警方通過查閱死者的電腦和手機(jī)岖是,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門帮毁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人豺撑,你說我怎么就攤上這事烈疚。” “怎么了聪轿?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵爷肝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我陆错,道長(zhǎng)灯抛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任音瓷,我火速辦了婚禮对嚼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘外莲。我一直安慰自己猪半,他們只是感情好兔朦,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布偷线。 她就那樣靜靜地躺著,像睡著了一般沽甥。 火紅的嫁衣襯著肌膚如雪声邦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天摆舟,我揣著相機(jī)與錄音亥曹,去河邊找鬼。 笑死恨诱,一個(gè)胖子當(dāng)著我的面吹牛媳瞪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播照宝,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼蛇受,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了厕鹃?” 一聲冷哼從身側(cè)響起兢仰,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剂碴,沒想到半個(gè)月后把将,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忆矛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年察蹲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡递览,死狀恐怖叼屠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绞铃,我是刑警寧澤镜雨,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站儿捧,受9級(jí)特大地震影響荚坞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜菲盾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一颓影、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧懒鉴,春花似錦诡挂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至悉默,卻和暖如春城豁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抄课。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工唱星, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跟磨。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓间聊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親抵拘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哎榴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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