Android开发--Canvas高级使用
来源:互联网 发布:淘宝假货店铺名单2017 编辑:程序博客网 时间:2024/05/17 03:21
Canvas类中也提供了绘制路径的功能,通过canvas.drawPath方法,可以画出封闭路径和开放路径,并可以再路径上实现一些特殊的效果。
------------------------------------------------------------------------------
public void drawPath (Path path, Paint paint);
参数:
path:指被画的Path
paint:指被画图的画笔
--------------------------------------------------------------------------
代码示例:
-----------------------------------------------------------------------
package com.example.canvas;
import java.io.InputStream;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.SeekBar;
public class CanvasAdvance extends View{
Paint paintPath=new Paint();
public CanvasAdvance(Context context) {
super(context);
// TODO Auto-generated constructor stub
paintPath.setColor(Color.BLUE);
}
protected void onDraw(Canvas canvas){
canvas.drawPath(makeFollowPath(), paintPath);
}
private Path makeFollowPath(){
Path path=new Path();
path.moveTo(0, 0);
for(int i=1;i<=15;i++){
path.lineTo(i*20, (float)Math.random()*70);
}
return path;
}
}
测试代码:
package com.example.canvas;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
import android.widget.SeekBar;
public class MainActivity extends Activity {
CanvasAdvance canvasPoint=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
canvasPoint=new CanvasAdvance(this);
setContentView(canvasPoint);
}
}
测试结果:
2.绘制位图
在Canvas上面绘制位图的方法有如下两种:
--------------------------------------------------------------------------------------------------------------------
直接绘制Bitmap对象:通过BitmapFactory类的各种方法可以从不同资源创建Bitmap对象。
使用Drawable类中的draw方法绘制位图:调用Drawable下的draw方法即可
--------------------------------------------------------------------------------------------------------------------
代码示例:
-------------------------------------------------------------------------------------------------------------------
package com.example.canvas;
import java.io.InputStream;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.view.View;
public class CanvasBitmap extends View{
private Bitmap bitmap;
Matrix matrix=null;
Drawable drawable=null;
public CanvasBitmap(Context context) {
super(context);
// TODO Auto-generated constructor stub
matrix =new Matrix();
InputStream is=context.getResources().openRawResource(R.drawable.picturetwo);
bitmap = BitmapFactory.decodeStream(is);
drawable=context.getResources().getDrawable(R.drawable.picturethree);
drawable.setBounds(50, 100, 150, 300);
}
protected void onDraw(Canvas canvas){
matrix.setRotate(45,100,200);
canvas.setMatrix(matrix);
canvas.drawBitmap(bitmap, 150,200, null);
drawable.draw(canvas);
}
}
-------------------------------------------------------------------------------------------
测试结果:
- Android开发--Canvas高级使用
- Android开发之Canvas及高级使用
- android 高级Canvas绘图
- android开发之 Canvas
- Android开发&Canvas
- Android开发 之 Canvas
- Android开发之Paint的高级使用
- Android开发-----03-使用Canvas绘制虚线……
- Android开发,关于Canvas的使用,绘图的各种用法
- Android 高级绘图 Canvas, Paint , Bitmap
- Android开发之Canvas基本使用、Canvas裁剪和Region、RegionIterator
- android canvas的使用
- Android-Canvas使用技巧
- Android--使用Canvas绘图
- Android Canvas使用
- Android Canvas使用
- Android使用Canvas绘图
- Android Canvas使用
- Linux C内存泄露检测工具
- 商店管理系统源代码(十)
- .net导出excel
- 如何保证上传文件的安全性
- 静态函数,静态数据成员运用
- Android开发--Canvas高级使用
- 第五次上机实验
- 【Cocos2D-X 游戏引擎】初窥门径(5)CCAction:动作
- MySQL到NoSQL:数据的重思和查询方式的转换
- 建荣dm8261量产工具V1.8(12.06.19)
- 商店管理系统源代码(十一)
- dd的使用
- 笔记本装64位ubuntu的问题
- 关注这种形式可能存在的XSS漏洞