【问题标题】: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;
}