Android学习(18)Canvas_画布(绘图)

相关知识:

  • View(视图):View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。每一个View都有一个用于绘图的画布,这个画布可以任意扩展。Android中,任何一个View类都只需要重写OnDraw方法来实现,也可以是简单的文本形式等
  • Canvas(画布):Android中利用Canvas画出各种图形(点、直线、圆、椭圆、文字、矩形等)
  • Paint(画笔):Paint类拥有风格和颜色信息,可以绘制几何图形、文本和位图
  • View、Canvas、Paint的关系相当于课桌、笔记本、铅笔的关系。
1.在Activity中创建内部类MyView,利用Canvas画一个红色的矩形
public class CanvasActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_canvas);        //引用View视图        setContentView(new MyView(this));    }    //声明实例化画笔    private Paint paint = new Paint();    //创建View    public class MyView extends View{        public MyView(Context context) {            super(context);        }        //重新onDraw方法        @Override        protected void onDraw(Canvas canvas) {            super.onDraw(canvas);            //设置画布背景颜色(白色)            canvas.drawColor(0xFFFFFFFF);            //保存当前图形的一个可编辑或者可剪辑的状态            canvas.save();            //设置画笔颜色            paint.setColor(Color.RED);            canvas.drawRect(0,0,200,200,paint);            //释放资源            canvas.restore();        }    }}

Android学习(18)Canvas_画布(绘图)_第1张图片

2.绘制多个图形

(1)新建一个MyView.java类,继承View

public class MyView extends View {    //实例化三支画笔    private Paint p1 = new Paint();    private Paint p2 = new Paint();    private Paint p3 = new Paint();    public MyView(Context context) {        super(context);        //设置画笔属性        p1.setColor(Color.BLUE);        p2.setColor(Color.RED);        p1.setStrokeWidth(3);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        //设置画布的背景颜色        canvas.drawColor(Color.WHITE);        //画直线(fromX,fromY,toX,toY,Paint)        canvas.drawLine(0,0,1000,500,p1);        canvas.drawLine(0,500,1000,0,p2);        //点(坐标X,坐标Y,Paint)        canvas.drawPoint(500,200,p1);        //绘制圆(坐标X,坐标Y,半径,Paint)        canvas.drawCircle(500,500,100,p3);        //绘制椭圆        RectF rectF = new RectF();        //椭圆最左端距离屏幕的位置        rectF.left=400;        //椭圆最右端距离屏幕的位置        rectF.right=600;        //椭圆最上端距离屏幕的位置        rectF.top=700;        //椭圆最下端距离屏幕的位置        rectF.bottom=800;        canvas.drawOval(rectF,p1);        //绘制文字        p3.setTextSize(30);        canvas.drawText("Canvas的使用",0,1200,p3);    }}

(2)在Activity中加载该视图

public class Canvas2Activity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_canvas2);        //在本页面加载视图MyView        setContentView(new MyView(this));    }}

Android学习(18)Canvas_画布(绘图)_第2张图片


声明:
1.知识点来源于《网易云课堂》——《Android基础视频教程》
2.本文只用于本人自身学习记录,如有侵权,请立即通知本人更改或删除

更多相关文章

  1. Android清空画布
  2. android clipPath切割画布
  3. 面试题5:椭圆里面有个内切圆,内切圆中有文字
  4. Android中自定义TextView的形状--圆形-椭圆形-圆角矩形-线条
  5. Android 画椭圆
  6. 超级炫酷!HTML5 Canvas火焰画笔动画
  7. 如何防止滚动体内容,并在打开时允许在非画布导航下滚动?

随机推荐

  1. Android(安卓)Bitmap图像效果处理
  2. Unable to start activity异常的解决方案
  3. Android(安卓)Style与Theme的应用
  4. Exception in thread "main" java.lang.R
  5. android studio Git使用
  6. Andorid App Widget Framework分析之一:A
  7. 【Android】一道Android(安卓)OpenGL笔试
  8. Android(安卓)中的内容观察者ContentObse
  9. android 4.0.1源码编译,学习错误解决
  10. Android(安卓)CRC16计算产生校验码