【问题标题】:Slide left & Slide right Animation on an activity在活动上向左滑动和向右滑动动画
【发布时间】:2015-10-28 03:17:24
【问题描述】:

假设我在 Activity 布局中有一个 TextView(作为书页工作),我想在更改 TextView 文本(作为书本)后滑动 Activity 布局而不完成活动 我可以通过这段代码进行转换

startActivity(i2);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
this.finish();

但我不想完成当前的活动。我该怎么做?

【问题讨论】:

    标签: android animation transition


    【解决方案1】:

    我发明了一种方法来为 Activity 中的所有视图设置动画

    private void doNextPage() {
        final ImageView imageView= new ImageView(this);
        final FrameLayout frameLayout=(FrameLayout)findViewById(android.R.id.content);
        LinearLayout linearLayout=(LinearLayout) frameLayout.findViewById(R.id.rootContainer);
        imageView.setImageBitmap(getBitmapFromView(frameLayout));
        frameLayout.addView(imageView, 1, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
    
        --------------------  Do Changes -------------------
    
        Animation slideOutRight = AnimationUtils.loadAnimation(this,
                R.anim.slide_out_right);
        imageView.startAnimation(slideOutRight);
        slideOutRight.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
    
            }
    
            @Override
            public void onAnimationEnd(Animation animation) {
                frameLayout.removeView(imageView);
            }
    
            @Override
            public void onAnimationRepeat(Animation animation) {
    
            }
        });
        Animation slideInRight = AnimationUtils.loadAnimation(this,
                R.anim.slide_in_right);
        linearLayout.startAnimation(slideInRight);
    }
    
    public static Bitmap getBitmapFromView(View view) {
        Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(returnedBitmap);
        Drawable bgDrawable =view.getBackground();
        if (bgDrawable!=null)
            bgDrawable.draw(canvas);
        else
            canvas.drawColor(Color.TRANSPARENT);
        view.draw(canvas);
        return returnedBitmap;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      相关资源
      最近更新 更多