Плавный переход (плавно) между изображениями на vrpanorama

У меня есть набор изображений, которые я хочу отображать в виде vrpanorama в зависимости от продолжительности времени. Когда время достигнет, изображение1 изменится на изображение2. Но я хочу, чтобы переход изображения из image1 в image2 стал плавным или плавным. Я применил альфа-анимацию во время перехода, но она не выглядит гладкой. Может ли кто-нибудь помочь мне с проблемой в моем коде?

ublic class MainActivity extends AppCompatActivity {

private VrPanoramaView mVRPanoramaView;
public int counter=0;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mVRPanoramaView = (VrPanoramaView) findViewById(R.id.vrPanoramaView);

    AssetManager assetManager=getAssets(); // to reach asset
    try {
        final String[] images = assetManager.list("img");// to get all item in img folder.
        animate(mVRPanoramaView, images,false);

    }catch (IOException e) {
        e.printStackTrace();
    }



}



private void animate(final VrPanoramaView imageView, final String images[], final boolean forever) {

    //imageView <-- The View which displays the images
    //images[] <-- Holds R references to the images to display
    //imageIndex <-- index of the first image to show in images[]
    //forever <-- If equals true then after the last image it starts all over again with the first image resulting in an infinite loop. You have been warned.

    int fadeInDuration = 2000; // Configure time values here //1000 millisecond= 1 second
    int timeBetween = 3000;
    int fadeOutDuration =2000;




    //imageView.setVisibility(View.INVISIBLE);    //Visible or invisible by default - this will apply when the animation ends
    //imageView.setImageResource(images[imageIndex]);
    VrPanoramaView.Options options = new VrPanoramaView.Options();
    options.inputType = VrPanoramaView.Options.TYPE_MONO;

    InputStream inputStream = null;



    try {
        inputStream = getAssets().open("img/" + images[counter]);

    }catch (IOException e) {
        e.printStackTrace();
    }






    Animation fadeIn = new AlphaAnimation(0f,1f); // 0 ,1 (fromAlpha, toAlpha)
    fadeIn.setInterpolator(new DecelerateInterpolator()); // add this
    fadeIn.setDuration(fadeInDuration);


    Animation fadeOut = new AlphaAnimation(1f,0f); //1,0
    fadeOut.setInterpolator(new AccelerateInterpolator(10000)); // and this
    fadeOut.setStartOffset(fadeInDuration + timeBetween);
    fadeOut.setDuration(fadeOutDuration);

    AnimationSet animation = new AnimationSet(true); // change to false
    animation.addAnimation(fadeIn);
    animation.addAnimation(fadeOut);
    animation.setRepeatCount(0);
    imageView.setAnimation(animation);

    imageView.loadImageFromBitmap(BitmapFactory.decodeStream(inputStream), options);


    animation.setAnimationListener(new Animation.AnimationListener() {
        public void onAnimationEnd(Animation animation) {
            if (images.length > counter) {
                animate(imageView, images,forever); //Calls itself until it gets to the end of the array
                counter++;
            }
            else {

                    counter=0;
                    animate(imageView, images,forever);  //Calls itself to start the animation all over again in a loop if forever = true
            }
        }
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub
        }
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub


        }
    });
}







@Override
protected void onPause() {
    super.onPause();
    mVRPanoramaView.pauseRendering();

}

@Override
protected void onResume() {
    super.onResume();
    mVRPanoramaView.resumeRendering();

}

@Override
protected void onDestroy() {
    mVRPanoramaView.shutdown();
    super.onDestroy();

}

}

0 ответов

Другие вопросы по тегам