安卓开发---11 Android UI美化

  • Android原生画图
  • Canvash画布 paint画笔

https://blog.csdn.net/Xiongjiayo/article/details/81456313
https://www.cnblogs.com/limingblogs/p/7095554.html

1.写一个类继承view 重写三个构造方法和ondraw方法 准备画笔paint

canvas.drawArc ();画扇形;
canvas.drawCircle();画圆
canvas.drawOval();画椭圆
canvas.drawLine();画线
canvas.drawPoint();画点
canvas.drawRect();画矩形
canvas.drawRoundRect();画圆角矩形
canvas.drawVertices();画顶点
canvas.drawPath();画路径
canvas.drawBitmap();画位图
canvas.drawText() ;画文字

Android在用画笔的时候有三种Style,分别是

Paint.Style.STROKE 只绘制图形轮廓(描边) 
Paint.Style.FILL 只绘制图形内容 
Paint.Style.FILL_AND_STROKE 既绘制轮廓也绘制内容

private Paint paint = new Paint();
    //当Java代码中创建MyView时调用,如setContentView(new MyView(this))
    public MyView(Context context) {
        super(context);
    }

    //当在XML中引入MyView时候调用
    public MyView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
    }

    //这个构造函数一般不会主动调用
    public MyView(Context context, AttributeSet attributeSet, int defStyleAttr) {
        super(context, attributeSet, defStyleAttr);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        initPaint();
        canvas.drawCircle(100, 100, 50, paint);
        paint.setColor(Color.BLUE);
        canvas.drawLine(100f,200f,300f,300f,paint);
    }
    private void initPaint() {
        paint.setAntiAlias(true); //(抗锯齿)
        paint.setColor(Color.RED);//(画笔颜色)
        paint.setAlpha(10);//设置画笔透明度,取值0~255   0为透明  255 不透明
        paint.setStrokeWidth(10f); //画笔宽度
        paint.setStyle(Paint.Style.STROKE); //画笔填充类型
}

在activity中的引用:

MyView myView=new MyView(this);
        setContentView(myView);

在xml中的引用:

<com.swjd.mytest10.MyView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </com.swjd.mytest10.MyView>
setContentView(R.layout.activity_main);


发布了19 篇原创文章 · 获赞 27 · 访问量 1350

猜你喜欢

转载自blog.csdn.net/qq_44534541/article/details/105462010