阅读背景:

android开发之画中国国旗

来源:互联网 

“铭刻历史,勿忘国耻”  - 九一八 88 周年

懂得历史

自定义国旗视图

package com.shanjing.chinesenationalflag.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;

public class FlagView extends View {

    private Context mContext;

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

    public FlagView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public FlagView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        this.mContext = context;
    }

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

    private void drawNomal(Canvas canvas) {
        Paint mPaint = new Paint();
        mPaint.setAntiAlias(true);
        mPaint.setColor(Color.RED); //背景布色彩
        mPaint.setStrokeWidth(2);
        mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        canvas.drawRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), mPaint);
        mPaint.setColor(Color.YELLOW);//五角星色彩
        //大五角星
        Path path = new Path();
        path.moveTo(103, 49);
        path.lineTo(141, 164);
        path.lineTo(43, 92);
        path.lineTo(164, 92);
        path.lineTo(66, 164);
        path.lineTo(103, 49);
        path.lineTo(103, 49);
        path.close();
        canvas.drawPath(path, mPaint);
        //第一个小的五角星
        Path path1 = new Path();
        path1.moveTo(186, 61);
        path1.lineTo(216, 26);
        path1.lineTo(214, 72);
        path1.lineTo(189, 33);
        path1.lineTo(231, 50);
        path1.lineTo(186, 61);
        path.close();
        canvas.drawPath(path1, mPaint);
        //第二个小的五角星
        Path path2 = new Path();
        path2.moveTo(228, 96);
        path2.lineTo(269, 76);
        path2.lineTo(247, 117);
        path2.lineTo(241, 71);
        path2.lineTo(273, 104);
        path2.lineTo(244, 99);
        canvas.drawPath(path2, mPaint);
        //第三个小的五角星
        Path path3 = new Path();
        path3.moveTo(224, 148);
        path3.lineTo(273, 148);
        path3.lineTo(236, 175);
        path3.lineTo(249, 131);
        path3.lineTo(265, 175);
        path3.lineTo(224, 148);
        canvas.drawPath(path3, mPaint);
        //第四个小的五角星
        Path path4 = new Path();
        path4.moveTo(189, 182);
        path4.lineTo(231, 199);
        path4.lineTo(186, 211);
        path4.lineTo(216, 175);
        path4.lineTo(213, 221);
        path4.lineTo(189, 182);
        canvas.drawPath(path4, mPaint);
    }
}packag



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: