




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android绘图机制(二)自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解我们要想画好一些炫酷的View,首先我们得知道怎么去画一些基础的图案,比如矩形,圆形,三角形,多边形等.新建一个项目然后我们创建一个listview,每个图案一个Activity,这样看起来是不是很顺眼 <ListView android:id="+id/listview" android:layout_width="wrap_content" android:layout_height="wrap_content"
2、/>编写ListViewprivate ListView listview;/item上的数据源 private String name = "矩形", "圆形", "三角形", "扇形", "椭圆", "曲线","文字和图片"/listview的adapterprivate ArrayAdapter<String>adapter;private void initView() /实例化listview listview = (ListV
3、iew) findViewById(R.id.listview); /实例化数据源 adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, name); /listview设置adapter listview.setAdapter(adapter); /listview设置点击事件 listview.setOnItemClickListener(new AdapterView.OnItemClickListener() Override public void onItemClick
4、(AdapterView<?> parent, View view, int position, long id) /判断点击了第几个 if (id = 0) /矩形 startActivity(new Intent(MainActivity.this, RectActivity.class); else if (id = 1) /圆形 startActivity(new Intent(MainActivity.this, CircleActivity.class); else if (id = 2) /三角形 startActivity(new Intent(MainActivi
5、ty.this, TrigonActivity.class); else if (id = 3) /扇形 startActivity(new Intent(MainActivity.this, SectorActivity.class); else if (id = 4) /椭圆 startActivity(new Intent(MainActivity.this, OvalActivity.class); else if (id = 5) /曲线 startActivity(new Intent(MainActivity.this, PathActivity.class); else if
6、(id = 6) /曲线 startActivity(new Intent(MainActivity.this, TvIvActivity.class); );效果是这样的后续可以添加1.矩形RectActivity好的,上面写ListView的代码是不是很简单?拿我们新建一个RectActivity去画点了,首先我们要新建一个RectView继承Viewpackage com.lgl.view.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;imp
7、ort android.graphics.Paint;import android.util.AttributeSet;import android.view.View;/* * 矩形 * Created by LGL on 2016/1/7. */public class RectView extends View /无参 public RectView(Context context) super(context); /有参 public RectView(Context context, AttributeSet attrs) super(context, attrs); Overrid
8、e protected void onDraw(Canvas canvas) super.onDraw(canvas); / 创建画笔 Paint p = new Paint(); /设置实心 p.setStyle(Paint.Style.FILL); / 设置红色 p.setColor(Color.BLACK); / 设置画笔的锯齿效果 p.setAntiAlias(true); /绘制 canvas.drawRect(50, 100, 300, 300, p); 截图1.圆形CircleActivity我们还是新建一个CircleActivity去画点了,首先我们要新建一个CircleVi
9、ew继承Viewpackage com.lgl.view.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.View;import android.view.WindowManager;/* * 圆 * Created by LGL on 2016/1/7. */public class
10、CircleView extends View int width; int height; /无参 public CircleView(Context context) super(context); init(); /有参 public CircleView(Context context, AttributeSet attrs) super(context, attrs); init(); private void init() /获取屏幕的宽高 /Android绘图机制(一)自定义View的基础属性和方法里面有讲 WindowManager wm = (WindowManager) g
11、etContext() .getSystemService(Context.WINDOW_SERVICE); width = wm.getDefaultDisplay().getWidth(); height = wm.getDefaultDisplay().getHeight(); Override protected void onDraw(Canvas canvas) super.onDraw(canvas); Paint p = new Paint(); p.setColor(Color.BLACK); / 设置画笔的锯齿效果 p.setAntiAlias(true); canvas.
12、drawCircle(width / 2, height / 2, width / 2, p); 截图3.三角形TrigonActivity我们还是新建一个TrigonActivity去画点了,首先我们要新建一个trigonView继承Viewpackage com.lgl.view.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;i
13、mport android.util.AttributeSet;import android.view.View;/* * 三角形 * Created by LGL on 2016/1/7. */public class TrigonView extends View /无参 public TrigonView(Context context) super(context); /有参 public TrigonView(Context context, AttributeSet attrs) super(context, attrs); Override protected void onDr
14、aw(Canvas canvas) super.onDraw(canvas); Paint p = new Paint(); p.setColor(Color.BLACK); /实例化路径 Path path = new Path(); path.moveTo(80, 200);/ 此点为多边形的起点 path.lineTo(120, 250); path.lineTo(80, 250); path.close(); / 使这些点构成封闭的多边形 canvas.drawPath(path, p); 4.扇形SectorActivitypackage com.lgl.view.view;impo
15、rt android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.util.AttributeSet;import android.view.View;/* * 扇形 * Created by LGL on 2016/1/8. */public class SectorView extends View public SectorView
16、(Context context) super(text); public SectorView(Context context, AttributeSet attrs) super(context, attrs); Override protected void onDraw(Canvas canvas) super.onDraw(canvas); / 创建画笔 Paint p = new Paint(); p.setColor(Color.BLACK); RectF rectF = new RectF(60, 100, 200, 240); canvas.drawArc(rectF, 20
17、0, 130, true, p); 5.椭圆OvalActivitypackage com.lgl.view.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.util.AttributeSet;import android.view.View;/* * 椭圆 * Created by LGL on 20
18、16/1/8. */public class OvalView extends View public OvalView(Context context) super(context); public OvalView(Context context, AttributeSet attrs) super(context, attrs); Override protected void onDraw(Canvas canvas) super.onDraw(canvas); / 创建画笔 Paint p = new Paint(); p.setColor(Color.BLACK); RectF r
19、ectF = new RectF(60, 100, 200, 240); rectF.set(210,100,250,130); canvas.drawOval(rectF, p); 椭圆的思路和扇形是一样的,这里就不演示了截图6.曲线PathActivitypackage com.lgl.view.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphic
20、s.Path;import android.util.AttributeSet;import android.view.View;/* * Created by LGL on 2016/1/8. */public class PathView extends View public PathView(Context context) super(context); public PathView(Context context, AttributeSet attrs) super(context, attrs); Override protected void onDraw(Canvas ca
21、nvas) super.onDraw(canvas); / 创建画笔 Paint p = new Paint(); p.setColor(Color.BLACK); p.reset(); /设置空心 p.setStyle(Paint.Style.STROKE); Path path = new Path(); path.moveTo(100, 320);/设置Path的起点 path.quadTo(150, 310, 170, 400); /设置路径点和终点 canvas.drawPath(path, p); 截图7.文字和图片TvIvActivitypackage com.lgl.view.view;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Can
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全施工报告培训内容课件
- 瑞吉欧课程课件
- 安全方面的培训意见课件
- 甘肃温室工程建造方案(3篇)
- 福田防水补漏工程方案(3篇)
- 理想的风筝DI课件
- 班主任经验交流课件
- 玫瑰书香课件
- 仿古园林修缮工程方案(3篇)
- 猫犬驱虫药知识培训课件
- 锂电池制造工艺及装备 课件汇 陈华 第2-7章 锂电池原理与结构 -电池智能制造
- 职业学校招生培训会
- GB/T 24503-2024矿用圆环链驱动链轮
- 2024年九年级化学上册暑假提升讲义(沪教版)认识化学科学(解析版)
- 用户体验 智能座舱人机界面评测规范-意见征求稿-2024-07-技术资料
- 孝敬公婆的好儿媳范文(篇一)
- DB14-T 2490-2022 集装箱式锂离子电池储能电站防火规范
- 中压交联工序工艺培训
- 水质采样记录表
- 婴幼儿保育技能大赛考试题库(浓缩500题)
- 部编小学语文单元作业设计五年级上册第二单元
评论
0/150
提交评论