I must be misunderstanding something. I am trying to draw some simple
stuff, and things appear to clear (so not to display) in moments I don't
expect it. The sample included is a simplified version of a larger
application I'm porting to Android.
What I would expect is a circle in green, with a geometry (looking like
a rather silly satelite) composed out of three red polygons, drawn in
the circle.
Can anyone tell my why this is not happening ?
Thanks,
Danny
package info.backx.testdraw1;
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.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class DrawActivity extends Activity {
public DrawActivity thiz;
Panel p;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
thiz = this;
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
Button quit = new Button(this);
quit.setOnClickListener(mDoitClick);
quit.setText("Do it");
ll.addView(quit);
p = new Panel(this);
ll.addView(p);
setContentView(ll);
}
OnClickListener mDoitClick = new OnClickListener() {
public void onClick(View v) {
Log.e("Test", "DoitClick");
p.erase();
p.DrawPolygon(1, 4, new float[] {10, 95, 17, 88, 20, 95,
18, 97});
p.DrawPolygon(1, 4, new float[] {25, 100, 32, 103, 25,
110, 22, 103});
p.DrawPolygon(1, 4, new float[] {25, 90, 30, 95, 20,
105, 15, 100});
}
};
public class Panel extends SurfaceView implements
SurfaceHolder.Callback {
public Panel(Context context) {
super(context);
getHolder().addCallback(this);
}
@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int
arg2, int arg3) {
}
@Override
public void surfaceCreated(SurfaceHolder arg0) {
}
@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
}
public void DrawPolygon(int filled, int count, float[] points)
{
int i;
Path path = new Path();
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
Canvas canvas = getHolder().lockCanvas();
path.moveTo(points[0], points[1]);
for (i=1; i<count; i++) {
path.lineTo(points[i*2], points[i*2+1]);
}
path.close();
canvas.drawPath(path, paint);
getHolder().unlockCanvasAndPost(canvas);
}
public void erase() {
Canvas canvas = getHolder().lockCanvas();
Paint paint = new Paint();
paint.setColor(Color.GREEN);
canvas.drawCircle(20, 100, 15, paint);
getHolder().unlockCanvasAndPost(canvas);
}
}
}
--
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
No comments:
Post a Comment