Школьное предприятие, в котором я участвую, изучает эффекты Google Glass на отвлечении водителей. Для этого мы используем эффект Stroop - http://en.wikipedia.org/wiki/Stroop_effectПериодически просматривайте несколько просмотров CardBuilder
До сих пор мы использовали CardScrollView, чтобы наши участники могли прокручивать несколько карт при использовании симулятора вождения. Проблема в том, что при каждом обращении каждый раз отвлекаться.
В идеале мы хотели бы, чтобы каждый вид отображения отображался в течение нескольких секунд или около того, а затем переключался на следующий.
Я весь день прочесываю сеть и пробую так много разных конфигураций, как это теоретически может работать, но я еще не успел.
Вот этот класс, с которым я работал совсем недавно. Я вызываю run из основной функции активности onResume().
package com.google.android.glass.sample.apidemo;
import android.app.Activity;
import android.content.Context;
import android.os.SystemClock;
import com.google.android.glass.widget.CardBuilder;
import java.lang.Runnable;
import java.util.ArrayList;
public class StroopCycle implements Runnable {
private Activity mActivity;
private ArrayList<CardBuilder> cards = new ArrayList<CardBuilder>();
public StroopCycle(Activity act){
mActivity = act;
cards.add(createCard(mActivity, R.drawable.one));
cards.add(createCard(mActivity, R.drawable.two));
cards.add(createCard(mActivity, R.drawable.three));
cards.add(createCard(mActivity, R.drawable.four));
cards.add(createCard(mActivity, R.drawable.five));
cards.add(createCard(mActivity, R.drawable.six));
cards.add(createCard(mActivity, R.drawable.seven));
cards.add(createCard(mActivity, R.drawable.eight));
cards.add(createCard(mActivity, R.drawable.nine));
cards.add(createCard(mActivity, R.drawable.ten));
cards.add(createCard(mActivity, R.drawable.eleven));
cards.add(createCard(mActivity, R.drawable.twelve));
cards.add(createCard(mActivity, R.drawable.thirteen));
cards.add(createCard(mActivity, R.drawable.fourteen));
cards.add(createCard(mActivity, R.drawable.fifteen));
cards.add(createCard(mActivity, R.drawable.sixteen));
cards.add(createCard(mActivity, R.drawable.seventeen));
cards.add(createCard(mActivity, R.drawable.eighteen));
cards.add(createCard(mActivity, R.drawable.nineteen));
cards.add(createCard(mActivity, R.drawable.twenty));
}
@Override
public void run() {
for(int j = 0; j < cards.size(); j++){
mActivity.setContentView(cards.get(j).getView());
SystemClock.sleep(1000);
if (j == cards.size() - 1){
j = 0;
}
}
}
private static CardBuilder createCard(Context context, int drawable) {
return new CardBuilder(context, CardBuilder.Layout.TITLE)
.addImage(drawable);
}
}
Любая помощь была бы так оценена!
спасибо.
Отличная идея! Однако я уже пробовал это. Проблема в том, что при использовании анимации или setSelection в цикле отображается только последняя итерация. –
Потому что вам нужно отделить свой пользовательский интерфейс (активность) и ваш таймер (A Runnable или Timer) –
Спасибо! Не могли бы вы указать мне примерный код или что-то, что могло бы указать мне в правильном направлении? Я новичок в разработке Android и Google Glass. –