1. Layout
File main.xml
2. Java Code
File: DrawFunny.java
package us.blackturtle.drawfunny; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.Paint.Style; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; public class DrawFunnyActivity extends Activity{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MyCustomPanel view = new MyCustomPanel(this); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); addContentView(view, params); } private class MyCustomPanel extends View { public MyCustomPanel(Context context) { super(context); } @Override public void draw(Canvas canvas) { Paint paint = new Paint(); paint.setStrokeWidth(2); paint.setColor(Color.LTGRAY); float[] lns = new float[600]; for(int i=0; i<600; i++){ if(i%2==0) lns[i] = 5*(i%60) + 30; // x-values else lns[i] = (i/60)*10 + 100; // y-values } canvas.drawLines(lns, paint); paint.setColor(Color.MAGENTA); paint.setStyle(Style.STROKE); paint.setStrokeWidth(4); Path p = new Path(); p.moveTo(400,100); p.lineTo(600,100); p.lineTo(550,200); p.lineTo(600,300); p.lineTo(400, 300); p.lineTo(450, 200); p.lineTo(400, 100); canvas.drawPath(p, paint); paint.setColor(Color.RED); canvas.drawCircle(130,280,10,paint); Path n = new Path(); n.moveTo(130,270); n.quadTo(140,250,160,250); canvas.drawPath(n, paint); canvas.drawRect(160,240,180,260,paint); n = new Path(); n.moveTo(180,250); n.quadTo(200,250,210,270); canvas.drawPath(n, paint); canvas.drawCircle(210, 280, 10, paint); n = new Path(); n.moveTo(210,290); n.quadTo(200,310,180,310); canvas.drawPath(n, paint); canvas.drawRect(160,300,180,320, paint); n = new Path(); n.moveTo(160,310); n.quadTo(140,310,130,290); canvas.drawPath(n, paint); } } }
Screen Shot: