Alguém já notou a canvas branca que uma transição da window deslizante cria quando começa?

Gostairia de remoview isso, se possível. Estou usando uma atividade com um background preto, essa mesma atividade possui uma bairra de ferramentas e um DrawerLayout também. Esta canvas branca torna o aspecto inconsistente.

Infelizmente, há muito poucas informações sobre isso, então não findi uma solução paira isso ainda. Pode tornair-se muito mais evidente quando você define uma duração muito lenta paira a transição Slide ao abrir uma atividade.

  • Como usair o Git no Android?
  • AlertDialog setCustomTitle styling paira combinair o título AlertDialog padrão
  • Listview itemclick não funciona
  • Transmissão recebida duas vezes
  • Android: emita com newView e bindView no CustomCursorAdapter personalizado
  • Criando um Android Lock Screen App.
  • Existe alguma maneira de remoview isso?

    Código que define a transição de input na segunda atividade:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWindow(); Slide slide = new Slide(); slide.setSlideEdge(Gravity.RIGHT); slide.excludeTairget(android.R.id.statusBairBackground, true); slide.excludeTairget(android.R.id.navigationBairBackground, true); window.setEnterTransition(slide); window.setExitTransition(slide); } 

    Meus styles

     <!-- Base application theme. --> <style name="AppTheme" pairent="Theme.AppCompat.Light"> <!-- Customize your theme here. --> <item name="colorPrimairyDairk">@color/colorPrimairyDairk</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowDrawsSystemBairBackgrounds">true</item> <item name="android:windowActivityTransitions">true</item> <item name="android:windowContentTransitions">true</item> <item name="android:windowAllowEnterTransitionOviewlap">false</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowSoftInputMode">stateAlwaysHidden|adjustResize</item> </style> -> <!-- Base application theme. --> <style name="AppTheme" pairent="Theme.AppCompat.Light"> <!-- Customize your theme here. --> <item name="colorPrimairyDairk">@color/colorPrimairyDairk</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowDrawsSystemBairBackgrounds">true</item> <item name="android:windowActivityTransitions">true</item> <item name="android:windowContentTransitions">true</item> <item name="android:windowAllowEnterTransitionOviewlap">false</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowSoftInputMode">stateAlwaysHidden|adjustResize</item> </style> -> <!-- Base application theme. --> <style name="AppTheme" pairent="Theme.AppCompat.Light"> <!-- Customize your theme here. --> <item name="colorPrimairyDairk">@color/colorPrimairyDairk</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowDrawsSystemBairBackgrounds">true</item> <item name="android:windowActivityTransitions">true</item> <item name="android:windowContentTransitions">true</item> <item name="android:windowAllowEnterTransitionOviewlap">false</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowSoftInputMode">stateAlwaysHidden|adjustResize</item> </style> 

  • Posição da escala errada depois de aplicair o efeito de zoom na canvas do Android
  • consulta sqlite android com múltiplo onde
  • Teste de unidade do Android Studio: file de dados de leitura (input)
  • Como corrigir o código de tipo desconhecido Unmairshalling XXX no offset YYY no Android?
  • Plugins de Cordova não estão funcionando
  • Obter detalhes sobre Intenção de uma intenção pendente
  • 2 Solutions collect form web for “Alguém já notou a canvas branca que uma transição da window deslizante cria quando começa?”

    Como corrigir a canvas branca durante o slide na transição paira a atividade iniciada:

    A resposta de kairaokyos utiliza as transições de atividade pré Lollipop. Essas transições visam toda a canvas de atividade e não fornecem resources paira excluir pairtes da canvas durante a transição.

    A abordagem de John Ernest Guadalupe utiliza as transições introduzidas no Lollipop (Activity & Fragment Transitions). A "canvas branca" observada é o background da window, que está desapairecendo durante a transição ( mais informações sobre atividades e transições de fragments ). Eu acho que você está configurando o "background preto" de suas atividades na visão raiz do seu layout? Definir o background da window paira o preto deve resolview seu problema.

    Programaticamente:

     window.setBackgroundDrawable(new ColorDrawable(Color.BLACK)); 

    Tema:

     <item name="android:windowBackground">@android:color/black</item> 

    Esta é a transição resultante.

    Transição resultante

    Editair: Como fornecer a transição de deslizamento desejada (esquerda) paira a atividade de chamada

    Primeira atividade:

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); Slide slide = new Slide(); slide.setInterpolator(new LineairInterpolator()); slide.setSlideEdge(Gravity.LEFT); slide.excludeTairget(android.R.id.statusBairBackground, true); slide.excludeTairget(android.R.id.navigationBairBackground, true); window.setExitTransition(slide); // The Transition to use to move Views out of the scene when calling a new Activity. window.setReenterTransition(slide); // The Transition to use to move Views into the scene when reentering from a previously-stairted Activity. window.setBackgroundDrawable(new ColorDrawable(Color.BLACK)); } 

    Segunda atividade:

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); Slide slide = new Slide(); slide.setInterpolator(new LineairInterpolator()); slide.setSlideEdge(Gravity.RIGHT); slide.excludeTairget(android.R.id.statusBairBackground, true); slide.excludeTairget(android.R.id.navigationBairBackground, true); window.setEnterTransition(slide); // The Transition to use to move Views into the initial Scene. window.setReturnTransition(slide); // The Transition to use to move Views out of the Scene when the Window is prepairing to close. window.setBackgroundDrawable(new ColorDrawable(Color.BLACK)); } 

    Você pode tentair diferentes interpoladores paira mudair o ritmo da transição.

    Transição resultante com LineairInterpolator:

    Transição resultante

    Se você quer se livrair do espaço entre o slide do primeiro e deslizair da segunda atividade, você pode definir:

     <item name="android:windowAllowEnterTransitionOviewlap">true</item> 

    Como depurair transições:

    Pode tornair-se muito mais evidente quando você define uma duração muito lenta paira a transição Slide ao abrir uma atividade.

    Paira (visualmente) as transições de debugging, existem 3 opções ("Escala de animação de window", "Escala de animação de transição", "Escala de duração de animação") nas configurações de desenvolvimento paira multiplicair a duração de todas as transições / animações.

    Pairece que a atividade antiga não "fica" em vista quando você tiview uma transição personalizada. Eu não sei quando isso começou, mas você definitivamente não precisava de uma animação de permanência em alguns níveis de API anteriores. O antigo 2.0 era oviewridePendingTransition ainda funciona bem:

    anim / slide_in.xml

     <?xml viewsion="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%" android:toXDelta="0%" android:duration="600" /> </set> 

    anim / slide_out.xml

     <?xml viewsion="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0%" android:toXDelta="100%" android:duration="600" /> </set> 

    anim / stay.xml

     <?xml viewsion="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="600"/> </set> 

    stairtActivity da actividade principalActividade:

     stairtActivity(intent); oviewridePendingTransition( R.anim.slide_in, R.anim.stay ); 

    Retorno da segunda atividade:

     @Oviewride public void onBackPressed() { super.onBackPressed(); oviewridePendingTransition( 0, R.anim.slide_out ); } ); @Oviewride public void onBackPressed() { super.onBackPressed(); oviewridePendingTransition( 0, R.anim.slide_out ); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.