




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android绘图机制(二)自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解我们要想画好一些炫酷的View,首先我们得知道怎么去画一些基础的图案,比如矩形,圆形,三角形,多边形等.新建一个项目然后我们创建一个listview,每个图案一个Activity,这样看起来是不是很顺眼 编写ListViewprivate ListView listview;/item上的数据源 private String name = 矩形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片;/listview的adapterprivate ArrayAdapteradapter;private void initView() /实例化listview listview = (ListView) findViewById(R.id.listview); /实例化数据源 adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, name); /listview设置adapter listview.setAdapter(adapter); /listview设置点击事件 listview.setOnItemClickListener(new AdapterView.OnItemClickListener() Override public void onItemClick(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(MainActivity.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 (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;import 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); Override 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去画点了,首先我们要新建一个CircleView继承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 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) getContext() .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.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;import 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 onDraw(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;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 2016/1/8. */public class SectorView extends View public SectorView(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, 200, 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 2016/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 rectF = 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.graphics.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 canvas) 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.Canvas;import and
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省普宁市广太中学九年级上学期语文第二次阶段考试试卷(含答案)
- 2025年安全官考试及答案
- 2025年vfp考试理论试题及答案
- 城镇危房拆除方案范本
- 流动摊位 促销方案范本
- 电梯梯子维修方案范本
- 商务谈判方案范本
- 美国太阳能发电施工方案
- 河南申论考试真题及答案
- 2025年湖州吴兴区医疗卫生单位公开招聘编外工作人员30人考前自测高频考点模拟试题及答案详解(有一套)
- 安徽省蚌埠市2025-2026学年高三上学期调研性监测语文(含答案)
- 钢铁销售基础知识培训
- 5.1延续文化血脉 教案 -2025-2026学年统编版道德与法治九年级上册
- 2025年保密观原题附答案
- 基于项目学习的英语核心素养心得体会
- 2025年全球汽车供应链核心企业竞争力白皮书-罗兰贝格
- 第六章-材料的热性能
- (完整版)抛丸机安全操作规程
- 高一前三章数学试卷
- 自助与成长:大学生心理健康教育
- 2025年新高考2卷(新课标Ⅱ卷)语文试卷
评论
0/150
提交评论