Kids like to write letters on the phone using their finger.
They are also enjoy listening their voice from machine.
The kids learning letters can study and enjoy at the same time.
[feature]
select letter : alphabet(capital) / alphabet(small) / numbers / korean
writing : watching the order of letters writing first.
writing by finger(color and size can be changed by user)
listening native pronunciation, recording user's
Praise stamp will come out after writing
watching : watching the order of letters, listening pronunciation
changing the playing speed(fast/normal/slow)
playing : searching for the pronunciation listening
setting order ( sequential / random )
2011년 3월 24일 목요일
2011년 3월 10일 목요일
Android ACCELEROMETER sensor sample
public class ShakeActivity extends Activity implements SensorEventListener {
private static final int SHAKE_THRESHOLD = 800;
private long lastTime;
private float speed;
private float lastX;
private float lastY;
private float lastZ;
private float x, y, z;
private SensorManager sensorManager;
private Sensor accelerormeterSensor;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerormeterSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
@Override
public void onStart() {
super.onStart();
if (accelerormeterSensor != null)
sensorManager.registerListener(this, accelerormeterSensor,
SensorManager.SENSOR_DELAY_GAME);
}
@Override
public void onStop() {
super.onStop();
if (sensorManager != null)
sensorManager.unregisterListener(this);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
long currentTime = System.currentTimeMillis();
long gabOfTime = (currentTime - lastTime);
if (gabOfTime > 100) {
lastTime = currentTime;
x = event.values[SensorManager.DATA_X];
y = event.values[SensorManager.DATA_Y];
z = event.values[SensorManager.DATA_Z];
speed = Math.abs(x + y + z - lastX - lastY - lastZ) / gabOfTime * 10000;
if (speed > SHAKE_THRESHOLD) {
Log.d("TAG","##################### shaked #####################");
}
lastX = event.values[SensorManager.DATA_X];
lastY = event.values[SensorManager.DATA_Y];
lastZ = event.values[SensorManager.DATA_Z];
}
}
}
}
private static final int SHAKE_THRESHOLD = 800;
private long lastTime;
private float speed;
private float lastX;
private float lastY;
private float lastZ;
private float x, y, z;
private SensorManager sensorManager;
private Sensor accelerormeterSensor;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerormeterSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
@Override
public void onStart() {
super.onStart();
if (accelerormeterSensor != null)
sensorManager.registerListener(this, accelerormeterSensor,
SensorManager.SENSOR_DELAY_GAME);
}
@Override
public void onStop() {
super.onStop();
if (sensorManager != null)
sensorManager.unregisterListener(this);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
long currentTime = System.currentTimeMillis();
long gabOfTime = (currentTime - lastTime);
if (gabOfTime > 100) {
lastTime = currentTime;
x = event.values[SensorManager.DATA_X];
y = event.values[SensorManager.DATA_Y];
z = event.values[SensorManager.DATA_Z];
speed = Math.abs(x + y + z - lastX - lastY - lastZ) / gabOfTime * 10000;
if (speed > SHAKE_THRESHOLD) {
Log.d("TAG","##################### shaked #####################");
}
lastX = event.values[SensorManager.DATA_X];
lastY = event.values[SensorManager.DATA_Y];
lastZ = event.values[SensorManager.DATA_Z];
}
}
}
}
피드 구독하기:
글 (Atom)