画笔和画布
画笔:Paint类
画布:Canvas类
绘制一个矩形实例:(颜色使用的都是16进制的)
布局文件中设置帧布局管理器,id为framelayout,MainActivity中:
package com.example.huabihehuabu;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.FrameLayout;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FrameLayout frameLayout=findViewById(R.id.framlayout);
frameLayout.addView(new MyView(this));//把自定义View添加到帧布局管理器当中
}
}
创建一个MyView.java,用于画图
package com.example.huabihehuabu;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint=new Paint();//定义一个默认画笔
paint.setColor(0xffff6600);//设置画笔的颜色
paint.setStyle(Paint.Style.FILL);//设置填充方式
//绘制矩形
canvas.drawRect(10,10,480,500,paint);//前面两个是左上角的坐标,后面两个是右上角的坐标,默认为px
}
}
绘制几何图形
实例:在屏幕上绘制Android机器人
在布局文件中设置为framlayout,并设置id为framelayout,在MainActivity中:
package com.example;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.FrameLayout;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FrameLayout frameLayout=findViewById(R.id.framlayout);
frameLayout.addView(new MyView(this));//将自定义的View添加到布局管理器中
}
}
新建MyView,
package com.example;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.view.View;
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//绘制机器人
Paint paint=new Paint();//设置一个画笔
paint.setAntiAlias(true);//采用抗锯齿功能
paint.setCo