我想要 3d 立方体过渡更改视图或 android 中的活动。我正在谷歌搜索很多方法,但是在 android 中找不到任何有用的资源。我在 Play shop 中找到了一些应用程序,其中包含我预期的用于更改视图或活动的动画。我预期的输出屏幕如下:
我尝试了之间的转换,但无法获得预期的结果。通过搜索,我发现视图或活动之间只有动画 3d 效果翻转。
任何人都可以帮助我如何在视图或活动之间获得 3d 立方体过渡?
我想要 3d 立方体过渡更改视图或 android 中的活动。我正在谷歌搜索很多方法,但是在 android 中找不到任何有用的资源。我在 Play shop 中找到了一些应用程序,其中包含我预期的用于更改视图或活动的动画。我预期的输出屏幕如下:
我尝试了之间的转换,但无法获得预期的结果。通过搜索,我发现视图或活动之间只有动画 3d 效果翻转。
任何人都可以帮助我如何在视图或活动之间获得 3d 立方体过渡?
导入此项目并在项目属性中标记为库并将其添加到您的项目中。
像这样创建您的活动:
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;
}
}
}
在您的活动中,XML 应该是
<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" />