Я пытаюсь сделать приложение, чтобы изменить цвет кнопок с помощью датчика приближения.Датчик приближения для изменения кнопки Цвет
Я не знаю, как его изменить на части onSensorChanged
. Должен ли я импортировать цвет и реализовывать разные состояния цвета? Я немного смущен.
Вот мой код:
public class MainProxmityActivity extends Activity implements SensorEventListener {
Button proximidade;
SensorManager Sm;
Sensor ProxSensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_proxmity);
Sm = (SensorManager) getSystemService (SENSOR_SERVICE);
ProxSensor = Sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
proximidade = (Button) findViewById(R.id.btn_proximidade);
Sm.registerListener(this, ProxSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_proxmity, menu);
return true;
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
proximidade.setBackgroundColor(getTitleColor("bd4c31"));
}
}
Надежда вопрос ясен.
Hi @gregS Спасибо за ваш вклад в помощь мне. Очень доволен. У меня есть вопрос, связанный с тем, что вы сказали о кодах onStart() и onStop(). Связано ли это с onSensorChanged() и onAccuracyChanged(), соответственно? Я попытался сделать это, как вы сказали, но, похоже, это не работает, хотя ошибок нет. вот код: –
общественности недействительным onAccuracyChanged (датчик Sensor, внутр точность) { \t \t Sm.unregisterListener (mViewWithSensorListener);} \t общественного недействительными onSensorChanged (SensorEvent событие) { \t \t \t \t Sm.registerListener (mViewWithSensorListener, это так, как вы регистрируетесь и не слышите слушателя? –
Поскольку точность датчика приближения вашего устройства не изменится, нет смысла переопределять onAccuracyChanged() для него. С другой стороны, на AccuracyChanged() часто используется для датчиков местоположения. Надеюсь, это поможет. – gregS