Обновление дисплея SmartEyeglass каждые 40 мс
Я создал растровое изображение на экране моего Sony SmartEyeglass следующим образом:
private void updateLayout(){
this.showBitmap(bitmap);
}
Теперь я хочу обновлять его каждые 40 миллисекунд или около того.
Я пытался звонить снова и снова из другого потока и добавил this.clearDisplay()
но это не работает
Как я могу добиться регулярного обновления дисплея?
Обновить:
Я использовал предложенный код ниже.
Результат: заикание изображения, которое перекрывает предыдущее, которое не удаляется с экрана.
Пробовал добавлять canvas.drawRect(new Rect(0, 0, 500, 500), paint);
перед перерисовкой.
Результат: он все еще мигает, но теперь также не будет отображать новые изображения.
Кто-нибудь имеет опыт работы с графикой в реальном времени на SmartEyeglass. Перезагрузка расширения с другим сообщением для рисования не вариант!
2 ответа
Создавая обработчик postDelayed(), вы можете периодически запускать метод.
Ваш код должен быть таким.
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handler.post(sendData);
}
@Override
protected void onDestroy() {
super.onDestroy();
handler.removeCallbacks(sendData);
}
private void updateLayout(){
this.showBitmap(bitmap);
}
private final Runnable sendData = new Runnable(){
public void run(){
try {
//your method need to call here
updateLayout();
handler.postDelayed(this, 1000); // 1000 milliseconds means 1 sec.. here you can change your time limit
}
catch (Exception e) {
e.printStackTrace();
}
}
};
Вместо showBitmap
использование SmartEyeglassControlUtils.showBitmapWithCallback
, Таким образом, после завершения процесса рендеринга на SmartEyeglass вы получите обратный вызов в onResultShowBitmap
,
Внутри этого обратного вызова вы можете позвонить showBitmapWithCallback
снова, чтобы обновить дисплей как можно быстрее.
Скорость ограничена скоростью соединения так:
- Рассмотреть возможность использования
POWER_MODE_HIGH
получить Wi-Fi соединение между SmartEyeglass и телефоном - Рассмотреть возможность использования
showBitmapWithCallback(Bitmap bitmap, int x, int y, int transactionNumber)
с определением положения x,y и отправкой только той частиBitmap
, который должен быть обновлен.