利用Path可以画出各种复杂的二维图形,写了一个简单的例子,效果如下: ? 程序目录结构: <ignore_js_op style="word-wrap: break-word;"> ?
其中MainActivity代码如下: ? public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyLayout(this)); } } ?? 利用自定义的MyLayout填充Activity。MyLayout代码如下: public class MyLayout extends LinearLayout { public MyLayout(Context context) { super(context); // TODO Auto-generated constructor stub } protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); Log.v("tag", ">>>>>>>>>>>>>>>>>>>>>>"); Path mPath = new Path(); mPath.moveTo(20, 150); mPath.lineTo(60, 200); mPath.lineTo(100, 350); mPath.lineTo(200, 60); mPath.lineTo(140, 160); mPath.close(); Paint paint = new Paint(); canvas.drawColor(Color.WHITE); paint.setAntiAlias(true); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.STROKE); // 画布上用指定画笔绘出路径 canvas.drawPath(mPath, paint); }} ? 其中: Path mPath = new Path(); mPath.moveTo(20, 150); mPath.lineTo(60, 200); mPath.lineTo(100, 350); mPath.lineTo(200, 60); mPath.lineTo(140, 160); mPath.close(); ? path用来描述画笔的路径,close方法表示将最后的点和起点封闭起来。 paint.setAntiAlias(true); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.STROKE); ? 定义画笔的类型和风格。 原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=18630 本文地址:http://bajiewuneng.iteye.com/blog/1919505 |