Hi All,
I am developing one application in which i want to paint using
accelerometer sensor, this is my code,
this is my drawmainactivity
package com.drawline;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
public class DrawMainActivity extends Activity {
DrawlineActivity drawView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// Set full screen view
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
drawView = new DrawlineActivity(this);
setContentView(drawView);
drawView.requestFocus();
}
}
This is the code in which i am trying to paint
package com.drawline;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.shapes.ArcShape;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
public class DrawlineActivity extends View implements
SensorEventListener {
private static final String TAG = "DrawView";
float startx=40,starty=40,oldx,oldy,x,y;
List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();
SensorManager mSensorManager;
public DrawlineActivity(Context context) {
super(context);
setFocusable(true);
setFocusableInTouchMode(true);
mSensorManager =
(SensorManager)context.getSystemService(context.SENSOR_SERVICE);
mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
paint.setColor(Color.WHITE);
paint.setAntiAlias(true);
}
@Override
public void onDraw(Canvas canvas) {
for (Point point : points) {
canvas.drawCircle(point.x+100, point.y +100, 5, paint);
//canvas.drawLine(startx,starty, startx,starty, paint);
// Log.d(TAG, "Painting: "+point);
Log.d("SANDEEP", "Inside ondraw " + point.x+ point.y);
}
}
// public boolean onTouch(View view, MotionEvent event) {
// // if(event.getAction() != MotionEvent.ACTION_DOWN)
// // return super.onTouchEvent(event);
// Point point = new Point();
// point.x = event.getX();
// point.y = event.getY();
// points.add(point);
// invalidate();
// Log.d(TAG, "point: " + point);
// return true;
// }
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
Point point = new Point();
point.x= event.values[0] *5;
point.y = event.values[1]*5;
// point.x=(int) (x + point.x);
// point.y= (int) (y+ point.y);
points.add(point);
invalidate();
Log.d(TAG, "point: " + startx + starty);
// startx= startx + oldx;
// starty = starty + oldy;
oldx = startx;
oldy = starty ;
}
}
class Point {
float x=40, y=40;
@Override
public String toString() {
return x + ", " + y;
}
}
Can anyone of you please correct it what i am doing wrong.
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en