Animated TextView Not Updating..

citopr

New Member
Animated TextView Not Updating..

Ok. Here is my problem.. I am a little new to android dev.. I'm having a hard time understanding 2D graphics.. :BangHead:

I was able to make my Layout rotated like iPhone's LandscapeLeft to LandscapeRight.. It has a TextView that updated with accelerometer values...
The problem is that after the animation the TextView stops updating..

I have read that this type of animation only moves the view.. and that everything else is still in it's previous position... Can someone help me understand. I have attached my project in case somebody wanted to look at it..

ANY suggestions would be much appreciated.. Thanks..

Here is the code..

package org.example.hello;

import android.app.Activity;
.......
import android.widget.TextView;


public class Hello extends Activity implements SensorEventListener {
/** Called when the activity is first created. */

Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfaceHolder;
boolean previewing = false;
LayoutInflater controlInflater = null;

TextView numbersView;
TextView numbersView2;

// for orientation change
OrientationEventListener mOrientationEventListener;
int mDeviceOrientation;
public SensorManager sensorManager = null;
float accelerationX;
float accelerationY;

// ///Orientation//////
static final int lanscapeLeft = 2;
static final int lanscapeRight = 1;
int orientation = 2;

View viewControl;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// *******************************************
// full screen mode
// *******************************************
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// *******************************************
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

//sets a floating layer
viewControl = getLayoutInflater().inflate(R.layout.mainview, null);
setContentView(viewControl);

numbersView = (TextView) findViewById(R.id.numbersview);
numbersView2 = (TextView) findViewById(R.id.numbersview2);



mOrientationEventListener = new OrientationEventListener(this,
SensorManager.SENSOR_DELAY_NORMAL) {
@Override
public void onOrientationChanged(int orientation) {
mDeviceOrientation = orientation;
}
};

if (mOrientationEventListener.canDetectOrientation()) {
mOrientationEventListener.enable();
}
}

// ///////////////////////////////////////////////////////////////////////////////////
// /////////////////////////ACCELEROMETER SET
// UP/////////////////////////////////////
// /////////////////////////////////////////////////////////////////////////////////
@Override
protected void onResume() {
super.onResume();
// Register this class as a listener for the accelerometer sensor
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_GAME);

}

public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub

}

public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
synchronized (this) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {

// high-pass filter to eliminate gravity
accelerationX = event.values[0];
accelerationY = event.values[1];
String accValue = String.format("%.1f", accelerationX);
String accValue2 = String.format("%.1f", accelerationY);

if (mDeviceOrientation <= 300 && mDeviceOrientation >= 240) {
animateRootViewToLanscapeLeft(viewControl);
}
if (mDeviceOrientation >= 60 && mDeviceOrientation <= 120) {
animateRootViewToLanscapeRight(viewControl);
}


numbersView.setText(accValue);

numbersView2.setText(accValue2);
}
}
}

public void animateRootViewToLanscapeLeft(View view) {
if (orientation == lanscapeRight) {
Animation spin = AnimationUtils.loadAnimation(
getApplicationContext(), R.anim.tolandscapeleft);
view.setAnimation(spin);
spin.setFillAfter(true);
spin.start();
orientation = lanscapeLeft;
}
}

public void animateRootViewToLanscapeRight(View view) {
if (orientation == lanscapeLeft) {
Animation spin = AnimationUtils.loadAnimation(
getApplicationContext(), R.anim.tolandscaperight);
view.setAnimation(spin);
spin.setFillAfter(true);
spin.start();
orientation = lanscapeRight;
}
}


}
 
Last edited:
Top