ئەسسالاممۇ ئەلەيكۇم ئالىپتىكى دوستلار، بۆگۈن ھۇزۇرۇڭلارغا بىز ياساپ چىققان ئۇيغۇرچە كومپاس ئەپتىن بىرنى سۇندۇق، كومپاسنى ھەممىمىز بىلىمىز شىمال جەنۇپنى كۆرسىتىپ بېرىپ بىزنىڭ يولدىن ئېزىپ قېلىشىمىزنىڭ ئالدىنى ئالىدىغان ئۈسكۈنە. بىراق ھەر كۈنى كوپماستىن بىرنى يانچۇقىمىزغا سېلىپ يۈرەلمەيمىز، خوشاللىنارلىق يىرى شۇكى ھازىرقى يانفۇنلارغا تەرەپ سەزگۈچ سېنزۇرى ئورۇنلاشتۇرۇلغان بۇلۇپ ئازراقلا ماتىماتىكىلىق ھىسابلاش قوشقاندىن كىيىن يانفۇن شۇ ھامانلا كومپاسقا ئايلىنىپ بىزگە تەرەپلەرنى توغرا كۆرسىتىپ بېرەلەيدۇ. كومپاسقا دائىر خەنزۇچە ، ۋە باشقا تىلدىكى ئەپلەر ناھايىتى كۆپ، شۇنداق بولسىمۇ بىز ئۆزىمىر قپل سېلىپ ئۇيغۇرچىسىنى ياساپ باقتۇق، مەكۇر ئەپ ئۇيغۇرچە بۇلۇپلا قالماي توغرىلىق دەرىجىسىمۇ ئەشۇ ئەپلەردىن قېلىشمايدۇ. تۆۋەندە ئەپنىڭ چۈشۈرۈش ئادرىسى ۋە يادرولۇق كود قىسىمىنى سۇندۇق، ئەس قېتىپ قالسا پايدىلىنارسىلەر.
ئەپنى چۈشۈرۈش ئادرىسى:
ئۇيغۇرچە ئاندرويد نۇسقىسى
ئەپنىڭ خەنزۇچە نۇسقىسىنى ياساپ تۆۋەندىكى ئەپ بازارلىرىغا چىقىرىپ قويدۇق:
بەيدۇ ئەپ بازىرىدىن چۈشۈرۈش
ۋەندوۋجىيا ئەپ بازىرىدىن چۈشۈرۈش
ئەپتىن ئازراق بولسىمۇ كىرىم بۇلۇپ قالارمىكىن دەپ ئەپنىڭ ئاستى قىسمىغا ئېلان قۇيۇپ قويدۇق، چىققان ئېلانلار ھەرگىزمۇ قالايمىقان ئېلانلار ئەمەس، بىز كۆرۈپ بولىدىكەن دىگەنلىرىنى چىقىرىپ قويدۇق، بىر قېتىم چىكىلسە بىزگە 0.006يۈەن كىرىم بۇلىدىكەن، ئەگەر ئەپ ياراپ قالسا قوللاپ قۇيارسىلەر دوستلار
ئەپتىن رەسىملەر:
ئەپنىڭ كومپاس قىسمىغا دائىر ئەسلى كودى:
- public class Compass implements SensorEventListener {
- private static final String TAG = "Compass";
- private SensorManager sensorManager;
- private Sensor gsensor;
- private Sensor msensor;
- private float[] mGravity = new float[3];
- private float[] mGeomagnetic = new float[3];
- private float azimuth = 0f;
- private float currectAzimuth = 0;
- DecimalFormat df = new DecimalFormat("#");
- // compass arrow to rotate
- public ImageView arrowView = null;
- public TextView arrowDegre =null;
- public Compass(Context context) {
- sensorManager = (SensorManager) context
- .getSystemService(Context.SENSOR_SERVICE);
- gsensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
- msensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
- }
- public void start() {
- sensorManager.registerListener(this, gsensor,
- SensorManager.SENSOR_DELAY_GAME);
- sensorManager.registerListener(this, msensor,
- SensorManager.SENSOR_DELAY_GAME);
- }
- public void stop() {
- sensorManager.unregisterListener(this);
- }
- private void adjustArrow() {
- if (arrowView == null) {
- return;
- }
- //Log.i(TAG, "will set rotation from " + currectAzimuth + " to "+ azimuth);
- Animation an = new RotateAnimation(-currectAzimuth, -azimuth,
- Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
- 0.5f);
- currectAzimuth = azimuth;
- an.setDuration(500);
- an.setRepeatCount(0);
- an.setFillAfter(true);
- arrowView.startAnimation(an);
- arrowDegre.setText(df.format(currectAzimuth)+" °");
- }
- @Override
- public void onSensorChanged(SensorEvent event) {
- final float alpha = 0.97f;
- synchronized (this) {
- if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
- mGravity[0] = alpha * mGravity[0] + (1 - alpha)
- * event.values[0];
- mGravity[1] = alpha * mGravity[1] + (1 - alpha)
- * event.values[1];
- mGravity[2] = alpha * mGravity[2] + (1 - alpha)
- * event.values[2];
- // mGravity = event.values;
- // Log.e(TAG, Float.toString(mGravity[0]));
- }
- if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
- // mGeomagnetic = event.values;
- mGeomagnetic[0] = alpha * mGeomagnetic[0] + (1 - alpha)
- * event.values[0];
- mGeomagnetic[1] = alpha * mGeomagnetic[1] + (1 - alpha)
- * event.values[1];
- mGeomagnetic[2] = alpha * mGeomagnetic[2] + (1 - alpha)
- * event.values[2];
- // Log.e(TAG, Float.toString(event.values[0]));
- }
- float R[] = new float[9];
- float I[] = new float[9];
- boolean success = SensorManager.getRotationMatrix(R, I, mGravity,
- mGeomagnetic);
- if (success) {
- float orientation[] = new float[3];
- SensorManager.getOrientation(R, orientation);
- // Log.d(TAG, "azimuth (rad): " + azimuth);
- azimuth = (float) Math.toDegrees(orientation[0]); // orientation
- azimuth = (azimuth + 360) % 360;
- // Log.d(TAG, "azimuth (deg): " + azimuth);
- adjustArrow();
- }
- }
- }
- @Override
- public void onAccuracyChanged(Sensor sensor, int accuracy) {
- }
- }
مەزمۇننى كۆچۈرۈۋېلىش |
|