前面学习已知,Android大部分组件都是View的子类,而如果要进行图形的绘制操作,则我们可以用一个类去继承View类,之后覆写View类中指定方法。
View中绘图方法
protected void onDraw(Canvas canvas)
protected void onDrawScrollBars(Canvas canvas)
绘图4个核心操作类
android.graphics.Canvas类:操作绘图,绘图平台,提供了一个画板功能
android.graphics.Paint类:相当于画笔类
android.graphics.Bitmap:图片管理类,操作图片资源
android.graphics.Matrix: 矩阵类
现在我们先画几个简单图形,了解一下这几个类的用法。
定义MyView类:
public class MyView extends View{ public MyView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } protected void onDraw(Canvas canvas){ canvas.drawColor(Color.WHITE);//设置背景颜色 Paint paint=new Paint(); paint.setColor(Color.YELLOW);//设置笔尖为黄色 canvas.drawCircle(30,50,25,paint);//画圆 paint.setColor(Color.BLACK); canvas.drawRect(80,20,160,80, paint);//定义矩形 Rect rect=new Rect();//定义矩形 rect.set(180, 20, 200, 80);//设置矩形大小 paint.setStyle(Style.STROKE);//空心显示 canvas.drawRect(rect,paint); paint.setColor(Color.BLUE); paint.setTextSize(20); canvas.drawText("ee的画板", 10, 110, paint);//显示文字 paint.setColor(Color.RED); canvas.drawLine(10, 120, 300, 120, paint); RectF oval=new RectF();//定义参考矩形 oval.set(10.0f, 140.0f, 110.0f, 200.0f); canvas.drawOval(oval, paint);//画椭圆 oval.set(150.0f, 140.0f, 110.0f, 200.0f);//定义大小 canvas.drawArc(oval, 150.0f, 140.0f, true, paint);//画弧 //绘图 Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.wall); //消除锯齿 paint.setAntiAlias(true); canvas.drawBitmap(bitmap, 200, 200,paint); paint.setTextSize(20); paint.setColor(Color.BLACK); canvas.drawText("图片高度:"+bitmap.getHeight()+", 图片宽度:"+bitmap.getWidth(), 10, bitmap.getHeight()+20, paint); } }
然后在布局文件添加我们自己定义的组件 MyView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MyView" > <com.example.viewdraw.MyView android:id="@+id/myview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
接下来,Activity里面只需要显示即可,这里是不动的,系统生成默认。
实现效果如图:
接下来,我们深入运用一下Bitmap
首先我们定义将图片拉伸。
加入以下几行代码:
/* * 将图片拉伸至手机屏幕大小 */ DisplayMetrics dm=getResources().getDisplayMetrics(); int screenWidth=dm.widthPixels; int screenHeight=dm.heightPixels; bitmap=Bitmap.createScaledBitmap(bitmap, screenWidth, screenHeight, true); canvas.drawBitmap(bitmap, 0, 0, paint);
然后我们定义图片在指定区域显示,也就是定义一个矩形框
加上这个代码
canvas.drawBitmap(bitmap, null, new Rect(30,50,200,200), paint);
相关推荐
详细介绍了采用MpAndroidChart最新的jar包,进行线性图表绘制的介绍和使用
这是一个图形绘制,有圆形,正方形,长方形,椭圆,三角形,梯形的图形绘制。空心的实心。
android2D图形绘制
在Android开发中图形图表的绘制控件,里面有多种图形绘制
Android:基本图形绘制源码
构建3D图形,OpenGl ES 绘制3D图形的放回绘制2D的图形的大致方法
Android中绘制图形的讲解 Android
Android的基本2D图形 绘制D图形绘制概述 2D的主要类View,Canvas,Paint介绍 图像,图形,文本的基本绘制
Android Path 解析 绘制各种图形
Android SurfaceView绘制组合图形
opengl绘制三维图形的基本知识,函数说明,处理三维图形的动作
图形绘制ANDROID UI。 简单,方便,快捷。 比较适应于新手。
主要介绍了Android开发实现各种图形绘制功能,结合实例形式分析了Android图形绘制常用的组件、函数使用方法及相关注意事项,需要的朋友可以参考下
android中构建一个模型,如一个立方体
android openGL es2.0简单图形绘制 简单绘制三角形 里面注释很详细
简单的2D图形绘制与多媒体案例
android 手机开发 绘制图形 基础知识
自定义View学习之几何图形的绘制:维度图表绘制(模仿京东白条个人信用评分维普图的绘制)
Android二维图形绘制中奥运五环的设计与实现.pdf