속도 센서 데이터를 불러와서 이 데이터 값의 변화를 이용하려 했는데 초기값에서 그대로 유지되네요
예를 들면 10이라는 값이 저장되면 원의 지름이 1로 나타나도
그 이후에 센서값이 20이나 30으로 변하면 원 지름이 2나 3으로 변해야 하는데 계속 1을 유지한다는 것이죠..
p.s. 이거 좀 답답하네요 onDraw도 보면 그림이 순차적으로 나타나는게 아니라 클래스 전체가 진행 완료되어야 그림이 전부 뜨더군요
순차적으로 그림을 띄우지 못하게 했더군요 sleep으로 좀 차츰차츰 나타나게 하려 했는데... animation 써야하나 -ㅅ-;...
아 animation도 소용없겠다 ... ㅠㅠㅠㅠ
원래 개발은 맞춰가는겁니다.
가끔 착각하는 분들이 계신데... 내가 생각하는대로가 아니면 못하는 사람이 많고 비슷한 불만을 표출하십니다.
개발이라는 단어가 나온이래로 "맞춰가기"가 아닌 적은 한번도 없는데 말이죠...
package com.android.test.draw;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Shader.TileMode;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.PathShape;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class testActivity extends Activity implements SensorEventListener {
CustomDrawableView mCustomDrawableView;
private SensorManager sensorManager;
float itt;
TextView outputX;
// ////////////////////////////////////////////////////////////onCreate
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCustomDrawableView = new CustomDrawableView(this);
setContentView(mCustomDrawableView);
/* setContentView(R.layout.main); */
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
outputX = (TextView) findViewById(R.id.TextView01);
}
// //////////////////////////////////////////////////////////////센서값
@Override
protected void onResume() { // activity를 사용자에게 보여주고 사용자의 입력을 처리
super.onResume();
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
}
@Override
protected void onStop() { // activity가 사용자에게 보여지지 않음
super.onStop();
sensorManager.unregisterListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER));
}
public void onSensorChanged(SensorEvent event) { // sensor event listener
synchronized (this) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
itt = event.values[0];
/* outputX.setText("x:" + event.values[0] + " m/s^2"); */
break;
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
// //////////////////////////////////////////////////////////
public class CustomDrawableView extends View {
private ShapeDrawable mDrawable;
Paint paint = new Paint();
Path path = new Path();
public void sleep(int time) {
try {
Thread.sleep(time);
} catch (InterruptedException e) {
}
}
// ////////////////////////////////////////////////////////////
public CustomDrawableView(Context context) {
super(context);
int x = 10;
int y = 10;
int width = 300;
int height = 300;
mDrawable = new ShapeDrawable(new PathShape(path, 10, 10));
mDrawable.getPaint().setShader(
new LinearGradient(0, 0, 0, 10, 0xff00ff00, 0xffff0000,
TileMode.CLAMP));
mDrawable.setBounds(x, y, x + width, y + height);
paint.setColor(Color.WHITE);
path.moveTo(5, 0);
path.lineTo(0, 6);
path.lineTo(4, 6);
path.lineTo(4, 8);
path.lineTo(6, 8);
path.lineTo(6, 6);
path.lineTo(8, 6);
}
// ////////////////////////////////////////////////////////////Canvas
/*
* public class inner extends testActivity{ //
* ////////////////////////////////////////////////////////////sleep 구현
* // 메소드 public void sleep(int time) { try { Thread.sleep(time); }
* catch (InterruptedException e) { } }
*/
public void update(float itt){
}
protected void onDraw(Canvas canvas) {
mDrawable.draw(canvas);
// 틀
paint.setColor(Color.BLUE);
canvas.drawLine(430, 430, 170, 430, paint);
paint.setColor(Color.GREEN);
canvas.drawLine(170, 430, 170, 205, paint);
// 값
paint.setColor(Color.YELLOW);
for(int i=0; i<10;i++){
canvas.drawLine(170+(i*10), 430, 170+(i*10), 430 - (itt*10), paint);
this.sleep(50);
}
paint.setColor(Color.RED);
canvas.drawLine(600, 205, 600, 300, paint);
}
// ////////////////////////////////////////////////////////////
// }
}
}




안드로이드 개발 환경이 편리해 보이는 듯 하면서도 그렇지 않은 감도 있네요...