मैंने वेब पर पोस्ट किए गए ट्यूटोरियल्स की सहायता से एक नमूना आवेदन विकसित किया है। मेरा लक्ष्य एक्सेलेरोमीटर तक पहुंचना और फोन अभिविन्यास के अनुसार गेंद को स्थानांतरित करना है। मैं हद तक प्रमाणित करने में सफल रहा था। लेकिन मैं दो issesएंड्रॉइड एक्सेलेरोमीटर चलती गेंद
- गेंद स्क्रीन
- गेंद आंदोलन के लिए बाध्य से बाहर जा रहा है चिकनी
यहाँ मेरी है (यह गायब हो जाता है और फिर से स्क्रीन पर दिखाई देता दिखता है) नहीं है कोड। क्या गेंद में चिकनी और सटीक गति प्राप्त करने के लिए मुझे कोई बदलाव करने की ज़रूरत है क्योंकि हम बहुत सारे गेम देखते हैं।
public class Accelerometer extends Activity implements SensorEventListener{
/** Called when the activity is first created. */
CustomDrawableView mCustomDrawableView = null;
ShapeDrawable mDrawable = new ShapeDrawable();
public static int x;
public static int y;
private Bitmap mBitmap;
private Bitmap mWood;
private SensorManager sensorManager = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Get a reference to a SensorManager
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mCustomDrawableView = new CustomDrawableView(this);
setContentView(mCustomDrawableView);
// setContentView(R.layout.main);
}
// This method will update the UI on new sensor events
public void onSensorChanged(SensorEvent sensorEvent)
{
{
/* if (sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
// the values you were calculating originally here were over 10000!
x = (int) Math.pow(sensorEvent.values[0], 2);
y = (int) Math.pow(sensorEvent.values[1], 2);
}*/
if (sensorEvent.sensor.getType() == Sensor.TYPE_ORIENTATION) {
Display display = getWindowManager().getDefaultDisplay();
int xmax = display.getWidth();
int ymax = display.getHeight();
x = (int) Math.pow(sensorEvent.values[1], 2);
y = (int) Math.pow(sensorEvent.values[2], 2);
if (x > xmax) {
x = xmax;
} else if (x < -xmax) {
x = -xmax;
}
if (y > ymax) {
y = ymax;
} else if (y < -ymax) {
y = -ymax;
}
}
}
}
// I've chosen to not implement this method
public void onAccuracyChanged(Sensor arg0, int arg1)
{
// TODO Auto-generated method stub
}
@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);
// ...and the orientation sensor
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onStop()
{
// Unregister the listener
sensorManager.unregisterListener(this);
super.onStop();
}
public class CustomDrawableView extends View
{
public CustomDrawableView(Context context)
{
super(context);
Bitmap ball = BitmapFactory.decodeResource(getResources(), R.drawable.ball);
final int dstWidth = 50;
final int dstHeight = 50;
mBitmap = Bitmap.createScaledBitmap(ball, dstWidth, dstHeight, true);
mWood = BitmapFactory.decodeResource(getResources(), R.drawable.wood);
}
protected void onDraw(Canvas canvas)
{
final Bitmap bitmap = mBitmap;
canvas.drawBitmap(mWood, 0, 0, null);
canvas.drawBitmap(bitmap, x, y, null);
invalidate();
}
}
}
.. करने के लिए उपयुक्त है जिसे आप [यहां] (http://www.appsrox.com/android/tutorials/accelerometer-golf/) है – user2230793