Crossfading с использованием TransitionDrawable, не работающего на android

У меня есть два изображения, которые я хочу пересечь. Первоначально оба используют изображение. Затем я использую .getDrawable (), чтобы получить возможность рисования изображений.

Это код, который я использовал

Drawable backgrounds[] = new Drawable[2]; backgrounds[0] = BackgroundImage.getDrawable(); backgrounds[1] = BackgroundImageBlurred.getDrawable(); TransitionDrawable crossfader = new TransitionDrawable(backgrounds); crossfader.startTransition(3000); 

Он отображает только изображение на первом элементе массива, которое он показывает в любом случае, поскольку оба изображения были установлены как видимые в XML.

Переход не начинается

Любая помощь будет оценена 🙂

Solutions Collecting From Web of "Crossfading с использованием TransitionDrawable, не работающего на android"

Вот пример, если у вас есть 2 drawables и вы хотите оживить их переход в некоторых ImageView :

 package com.example.app; import android.app.Activity; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.graphics.drawable.TransitionDrawable; import android.os.Bundle; import android.widget.ImageView; class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Drawable backgrounds[] = new Drawable[2]; Resources res = getResources(); backgrounds[0] = res.getDrawable(android.R.drawable.btn_star_big_on); backgrounds[1] = res.getDrawable(android.R.drawable.btn_star_big_off); TransitionDrawable crossfader = new TransitionDrawable(backgrounds); ImageView image = (ImageView)findViewById(R.id.image); image.setImageDrawable(crossfader); crossfader.startTransition(3000); } } 

Затем, если вы хотите перейти к исходному изображению, вы можете позвонить

 // Make sure the transition occurred crossfader.startTransition(0); // Reverse transition crossfader.reverseTransition(3000); 

Пожалуйста, исправьте меня, если я неправильно понял ваш вопрос.

Вы должны использовать setCrossFadeEnabled

 final TransitionDrawable briefcaseTransition = (TransitionDrawable) briefcase.getDrawable(); briefcaseTransition.setCrossFadeEnabled(true); briefcaseTransition.startTransition(500); 

Может вам понравится этот
– res / drawable / transition.xml:

 <?xml version="1.0" encoding="utf-8"?> <transition xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/on" /> <item android:drawable="@drawable/off" /> </transition> 

ImageView:

 <ImageButton android:id="@+id/button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/transition" /> 

Javacode:

 ImageButton button = (ImageButton) findViewById(R.id.button); TransitionDrawable drawable = (TransitionDrawable) button.getDrawable(); drawable.startTransition(500); 

Если это полезно, вы можете увидеть Google-Dev:

http://developer.android.com/guide/topics/resources/drawable-resource.html

TransitionDrawable – это просто специальный способ. Он не нарисован сам по себе, он должен быть размещен где-нибудь (например, на фоне просмотра, на ImageView, & c) для отображения.

Если вы пытаетесь перечеркнуть два изображения, у вас есть два возможных подхода:

  1. Используйте один ImageView с TransitionDrawable .
  2. Используйте два ImageViews и перекрестите их с анимацией .