2015-10-23 3 views
-1

Мне нужно сделать так, чтобы изображение автоматически менялось на другое изображение примерно через 27 секунд в зависимости от звукового файла. Я использую App Inventor 2, чтобы сделать это, я тоже, когда дело доходит до такого типа вещей.App Inventor 2 - Изменение изображения после времени

+2

людям проще помочь вам, если у них есть какой-то соответствующий код для работы - пожалуйста, покажите нам, что вы пробовали до сих пор – 0X0nosugar

+0

Добро пожаловать в Stackoverflow. Пожалуйста, сначала [возьмите тур] (http://stackoverflow.com/tour) и прочитайте [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask). Затем * отредактируйте * свой вопрос и добавьте скриншот того, что вы пробовали. – Taifun

ответ

0

Попробуйте это: XML код

<TextView 
    android:id="@+id/tv1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:text="Count" 
    android:textColor="#F44336" 
    android:textSize="30dp" /> 

<ImageSwitcher 
    android:id="@+id/imageSwitcher" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tv1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="168dp" /> 

И активность:

private ImageSwitcher sw; 
private TextView tv1; 
CountDownTimer myCountDown; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    tv1 = (TextView) findViewById(R.id.tv1); 
    sw = (ImageSwitcher) findViewById(R.id.imageSwitcher); 
    sw.setFactory(new ViewFactory() { 

     @Override 
     public View makeView() { 
      ImageView myView = new ImageView(getApplicationContext()); 
      myView.setScaleType(ImageView.ScaleType.FIT_CENTER); 
      myView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
      return myView; 
     } 
    }); 
    sw.setImageResource(R.drawable.love1); 

    myCountDown = new CountDownTimer(27000, 1000) { 

     @Override 
     public void onTick(long millisUntilFinished) { 
      tv1.setText(millisUntilFinished/1000 + ""); 
     } 

     @Override 
     public void onFinish() { 
      tv1.setText("0"); 
      sw.setImageResource(R.drawable.love2); 
     } 
    }; 
    myCountDown.start(); 
} 
0

Прежде всего, вам нужно использовать часы компонента. Вы можете найти его в части датчиков. Просто перетащите его в свой экран. Во-вторых, просто создайте глобальный список изображений, которые вы хотите просмотреть во время воспроизведения звука.

Затем просто создайте глобальные целочисленные переменные для индекса обратного отсчета времени и изображений. Вам просто нужно установить временную переменную «27» и индексную переменную изображений до «0» при нажатии кнопки звука.

Затем добавьте чек, чтобы определить переменную обратного отсчета. Просто смотрите ниже изображение для полного кода:

enter image description here

Наконец, вам нужно установить переменную обратный отсчет до «0», когда звук конца. Вы также можете настроить видимость холста на false, чтобы скрыть изображение.