Android Open Source - Smartlab Compass View From Project Back to project page Smartlab .
License The source code is released under:
Apache License
If you think the Android project Smartlab listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.example.compassview;
/ / w w w . j a v a 2 s . c o m
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.hardware.SensorListener;
import android.hardware.SensorManager;
import android.util.AttributeSet;
import android.widget.ImageView;
public class CompassView extends ImageView implements SensorListener {
private int direction = 0;
private Paint paint;
private SensorManager sensorManager;
public CompassView(Context context, AttributeSet attrs, int defStyleAttr) {
super (context, attrs, defStyleAttr);
paint = new Paint();
paint.setColor(Color.WHITE);
paint.setStrokeWidth(2);
paint.setStyle(Style.STROKE);
sensorManager = (SensorManager) context
.getSystemService(Context.SENSOR_SERVICE);
sensorManager
.registerListener(this , SensorManager.SENSOR_ACCELEROMETER);
setImageResource(R.drawable.compass);
}
public CompassView(Context context, AttributeSet attrs) {
this (context, attrs, -1);
}
public CompassView(Context context) {
this (context, null, -1);
}
@Override
protected void onDraw(Canvas canvas) {
int height = this.getHeight();
int width = this.getWidth();
canvas.rotate(direction, width / 2, height / 2);
super.onDraw(canvas);
}
public interface CompassListener {
public void onCompassChanged(CompassView compassView, int data);
}
CompassListener compassListener;
public void setOnCompassListener(CompassListener listener) {
compassListener = listener;
}
@Override
public void onAccuracyChanged(int arg0, int arg1) {
}
@Override
public void onSensorChanged(int sensor, float [] values) {
if (sensor != SensorManager.SENSOR_ACCELEROMETER)
return ;
this.direction = (int ) values[0];
invalidate();
if ( compassListener != null) {
compassListener.onCompassChanged(this , direction);
}
}
}
Java Source Code List com.example.activitylifecycletest.MainActivity.java com.example.activitylifecycletest.SecondActivity.java com.example.analyticstest.MainActivity.java com.example.androidgraphic.MainActivity.java com.example.animationexample.MainActivity.java com.example.animationexample.SecondActivity.java com.example.compassview.CompassView.java com.example.compassview.MainActivity.java com.example.databasetest.BookListActivity.java com.example.databasetest.MainActivity.java com.example.databasetest.data.Book.java com.example.databasetest.data.DatabaseAdapter.java com.example.fragmentexample.BookDetailsFragment.java com.example.fragmentexample.BookListFragment.java com.example.fragmentexample.MainActivity.java com.example.fragmentexample.data.BookListAdapter.java com.example.fragmentexample.data.Book.java com.example.fragmentexample.data.DatabaseAdapter.java com.example.listviewexample.MainActivity.java com.example.listviewexample.data.BookListAdapter.java com.example.listviewexample.data.Book.java com.example.listviewexample.data.DatabaseAdapter.java com.example.persiandatepicker.MainActivity.java com.example.persiandatepicker.PersianDatePicker.java com.example.preferencesexample.MainActivity.java com.example.sqlitetestapp.MainActivity.java com.example.sqlitetestapp.PersonListActivity.java com.example.sqlitetestapp.data.DatabaseAdapter.java com.example.sqlitetestapp.data.PersonListAdapter.java com.example.sqlitetestapp.data.model.Person.java com.example.viewpagerexample.MainActivity.java ir.smartlab.android.broadcast.MainActivity.java ir.smartlab.android.broadcast.WifiStateChangeReceiver.java ir.smartlab.android.downloadasynctask.MainActivity.java ir.smartlab.android.helloworld.MainActivity.java ir.smartlab.audiorecord.MainActivity.java ir.smartlab.audiotest.MainActivity.java ir.smartlab.camera.MainActivity.java ir.smartlab.captureimage.MainActivity.java ir.smartlab.customaudiorecorder.MainActivity.java ir.smartlab.java.ch04.firstcup.FisrtCup.java ir.smartlab.java.ch05.circlesample.Circle.java ir.smartlab.java.ch05.circlesample.Main.java ir.smartlab.java.ch06.simplecalculator.SimpleCalculator.java ir.smartlab.java.ch06.variablescope.VariableScopeTest.java ir.smartlab.java.persiancalendar.Main.java ir.smartlab.musicplayer.MainActivity.java ir.smartlab.musicplayerservice.MainActivity.java ir.smartlab.musicplayerservice.PlayerService.java ir.smartlab.personlist.MainActivity.java ir.smartlab.personlist.PersonListActivity.java ir.smartlab.personlist.data.DatabaseAdapter.java ir.smartlab.personlist.data.PersonListAdapter.java ir.smartlab.personlist.data.Person.java