2013-05-25 11 views
6

Chcę 3d widok przejścia kostki lub aktywności w Androidzie. Szukam Google wiele sposobów, ale nie można znaleźć żadnego przydatnego zasobu w Androidzie. Znalazłem kilka aplikacji w sklepie z moją oczekiwaną animacją do zmiany widoku lub aktywności. Mój ekran wyjściowy spodziewać byłoby jak:Animacja 3D Cube w Androidzie

enter image description here

Próbowałem z przejściami między lecz nie mógł się spodziewać rezultatu. Wyszukując znajduję tylko animację 3d efekt filp pomiędzy widokiem lub działaniem.

Czy ktoś może mi pomóc, jak uzyskać trójwymiarowe przejście między widokami lub działaniami?

Odpowiedz

15

importu this Projekt i znak jako Biblioteki we właściwości projektu i dodać go do ur projektu

tworzyć ur aktywność takiego

package com.example.testcube; 


import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.support.v4.view.PagerAdapter; 
import android.view.Gravity; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.ViewGroup.LayoutParams; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.TextView; 

import com.jfeinstein.jazzyviewpager.JazzyViewPager; 
import com.jfeinstein.jazzyviewpager.JazzyViewPager.TransitionEffect; 

public class MainActivity extends Activity { 

    private JazzyViewPager vpage; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Set window fullscreen and remove title bar, and force landscape orientation 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.activity_main); 
     setupJazziness(TransitionEffect.CubeOut); 
    } 

    private void setupJazziness(TransitionEffect effect) { 
     vpage = (JazzyViewPager) findViewById(R.id.jazzy_pager); 
     vpage.setTransitionEffect(effect); 
     vpage.setAdapter(new MainAdapter()); 
     vpage.setPageMargin(0); 
    } 

    private class MainAdapter extends PagerAdapter { 
     @Override 
     public Object instantiateItem(ViewGroup container, final int position) { 
      TextView text = new TextView(MainActivity.this); 
      text.setGravity(Gravity.CENTER); 
      text.setTextSize(30); 
      text.setTextColor(Color.WHITE); 
      text.setText("Page " + position); 
      text.setPadding(30, 30, 30, 30); 
      int bg = Color.rgb((int) Math.floor(Math.random()*128)+64, 
        (int) Math.floor(Math.random()*128)+64, 
        (int) Math.floor(Math.random()*128)+64); 
      text.setBackgroundColor(bg); 
      container.addView(text, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
      vpage.setObjectForPosition(text, position); 
      return text; 
     } 
     @Override 
     public void destroyItem(ViewGroup container, int position, Object obj) { 
      container.removeView((View) obj); 
     } 
     @Override 
     public int getCount() { 
      return 10; 
     } 
     @Override 
     public boolean isViewFromObject(View arg0, Object arg1) { 
      return arg0 == arg1; 
     }  
    } 

} 

aw ur działalności xml powinien być

<com.jfeinstein.jazzyviewpager.JazzyViewPager 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/jazzy_pager" 
android:layout_width="match_parent" 
android:layout_height="match_parent" /> 

enter image description here

+3

Podczas gdy ten link może odpowiadać na pytania W tym przypadku lepiej jest umieścić tutaj istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. – Jared

+0

@redred porady podjęte i dziękuję – Akilan

+0

pobrałeś wyżej wspomniany projekt ...? Wystarczy pobrać i zaimportować jako android istniejący projekt i edytować główną działalność, jak wspomniano, że to nie ma na celu importować żadnego innego libra – Akilan