android canvas\paint\path简单使用(自定义view必学)
来源:互联网 发布:mac上电话轰炸 编辑:程序博客网 时间:2024/06/13 06:54
最近学到自定义view,也是涉及到了canvas、paint、path的使用,此内容比较简单。
写此文章,一方面是笔者自己知识点的记录。另一方面希望能给部分新手启发。
此三者一般会在自定义view的onDraw()中用到:
canvas:决定view的布局(位置,画布颜色,形状)
paint:决定view的属性(颜色,字体大小,风格)
path:路径(path的用法深入比较复杂,此处由于是入门,就不多加阐述混淆新手了)
大致绘制步骤:
首先定义paint的属性,然后获取到view的宽高(一般绘制会根据view的大小来适配),随后根据获取到的view的大小使用canvas来绘制出形状。
效果:(代码在文章结尾)
MainAcitivity:
package com.example.double2.canvaspainttest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}
MyView:
package com.example.double2.canvaspainttest;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.RectF;import android.util.AttributeSet;import android.view.View;/** * Created by Double2号 on 2016/4/1. */public class MyView extends View { public MyView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //把整张画布绘制成白色 canvas.drawColor(Color.WHITE); Paint paint = new Paint(); //去锯齿 //设置paint的颜色 //设置paint的风格 //设置画笔宽度 paint.setAntiAlias(true); paint.setColor(Color.BLUE); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(4); //获取到view的宽度 int viewWidth=this.getWidth(); int viewHight=this.getHeight(); //绘制圆形 //drawCircle(float cx, float cy, float radius, Paint paint) canvas.drawCircle(viewWidth / 10 + 60, viewHight / 10 + 10, viewWidth / 10 + 10, paint); //绘制矩形 //drawRect(float left, float top, float right, float bottom, Paint paint) canvas.drawRect(100, viewHight / 5 + 20, viewWidth / 5 + 10, viewHight * 2 / 5 + 20, paint); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.RED); //绘制圆角矩形 //RectF(float left, float top, float right, float bottom) RectF rel=new RectF(10,viewHight/2 +40,viewWidth/5+10,viewHight*3/5+40); canvas.drawRoundRect(rel, 40, 10, paint); paint.setTextSize(48); //drawText(String text, float x, float y, Paint paint) canvas.drawText("xujiajia",viewWidth/2,viewHight/2,paint); //通过path绘制一个三角形 Path path=new Path(); path.moveTo(300, 400); path.lineTo(500, 100); path.lineTo(800, 200); path.close(); canvas.drawPath(path, paint); }}
activity_main:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <com.example.double2.canvaspainttest.MyView android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>
源码地址:http://download.csdn.net/detail/double2hao/9478649
1 0
- android canvas\paint\path简单使用(自定义view必学)
- 自定义view 系列一 paint canvas path简单使用
- Android自定义View,paint+canvas的使用
- Android中自定义View中的Paint,Canvas,RectF,Path
- android 自定义view学习笔记————Paint和Canvas的简单使用
- Android绘图基础:Canvas、Paint、Path的简单使用
- Android自定义View---前奏篇(Paint和Canvas的使用)
- Android自定义View工具:Paint&Canvas(一)
- Android自定义View工具:Paint&Canvas(二)
- android自定义view--Paint和Canvas
- Android自定义View(一)(Paint和Canvas的基本使用)
- Android Canvas Path Paint
- android: Canvas,Paint,Path
- 自定义View-Paint和Canvas
- Android Canvas、Paint、Path、drawBitmap
- android Paint 和Canvas的简单使用
- Android自定义View--从Canvas、Paint、Bitmap谈起
- 【Android】自定义View、画布Canvas与画笔Paint
- 多target设置实战,自己也这么搞过,这篇写的蛮细的,mark一下吧。
- web前端 —— 移动端知识的一些总结
- jQuery中$.ajax()方法参数说明
- ZigBee HA1.2的前世今生
- ListView Item多种布局优化
- android canvas\paint\path简单使用(自定义view必学)
- genymotion启动不了的解决方法
- php函数之func_get_args()、func_get_arg()与func_num_args()
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- swift开发笔记28 使用系统自带地图
- 不能解决函数调用!
- 判断 fir-clia 是否安装
- HDU-4568 Hunter (Dijkstra&&状压DP)
- shell之traceroute命令