2015-01-25 8 views
0

내가 속한 학교 기업이 운전자의주의를 분산시키는 데있어 Google Glass의 효과를 연구하고 있습니다. 그렇게하기 위해, 우리는 Stroop 효과를 사용했습니다 - http://en.wikipedia.org/wiki/Stroop_effect여러 CardBuilder보기를 주기적으로 순환

지금까지 우리는 참가자가 운전 시뮬레이터를 사용하면서 여러 카드를 스 와이프 할 수있게하기 위해 CardScrollView를 사용했습니다. 문제는 매번 스 와이프하는 것이 너무 혼란 스럽다는 것입니다.

이상적으로는 몇 초 동안 각보기를 표시 한 다음 다음보기로 전환하고 싶습니다.

저는 하루 종일 웹을 수색 해왔고 이론적으로 어떻게 작동하는지에 대한 많은 다른 구성을 시도했지만 아직 성공하지 못했습니다.

다음은 최근에 제가 작업해온 수업입니다. 주 활동 함수 onResume()에서 run을 호출합니다.

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); 
} 
} 

감사합니다.

감사합니다.

답변

0

하나의 해결책은 으로 백업 된 CardScrollView을 사용하는 것입니다.
official documentation website에서 예제를 찾을 수 있습니다.
그런 다음 카드를 변경하려면 animate(int position, Animation animationType) 또는 setSelection(int position)

+0

중 하나를 사용하십시오. 그러나, 나는 이미 그것을 시도했다. 문제는 루프에서 animate 또는 setSelection을 사용하면 마지막 반복 만 표시된다는 것입니다. –

+0

UI (Activity)와 타이머 (A Runnable, Timer)를 분리해야하기 때문에 –

+0

고마워요! 나에게 올바른 방향으로 나를 가리킬 수있는 예제 코드 나 뭔가를 가르쳐 주시겠습니까? Android 및 Google Glass 개발이 처음입니다. –