电脑系统过渡动画_windows过渡动画
1.如何设置ViewStub的过渡动画
2.开发者选项窗口动画和过渡动画区别
怎样开启或关闭win10系统的动画效果
我们都知道win10系统带有窗口动画特效,切换程序就会呈现出渐变效果,这一方面用户反馈的体验度还是相当不错的。可是这种窗口特效动画对于电脑本身比较老或比较卡的用户来讲,选择关闭动画特效,有利于提升体验度。所以选择开启或关闭win10系统的动画特效需要结合电脑硬件和个人需求来选择。
下面我先来说一下如何开启win10系统动画特效。
1、打开“控制面板”,点击“系统和安全”,再点击“系统”,找到“高级系统设置”;
2、点击“高级系统设置”后会弹出一个栏目框,找到“高级”选项,并点击“性能”下方的“设置(S)”;
3、打开“视觉效果”选项,选择你想在此计算机上使用的外观和性能设置,选择“自定义”,在“在最大化和最小化时显示窗口动画”前选对勾就可以了,然后点击确定,开启动画特效设置就完成了。
接下来我在给大家说一下如何关闭win10系统动画特效。
1、打开“控制面板”,点击“轻松使用”,找到“轻松使用设置中心”的“优化视觉显示”选项;
2、点击“优化视觉显示”选项,然后找到“使屏幕上显示的内容更便于查看”栏目下的“关闭所有不必要的动画”,在前面选对勾,然后点击确定,关闭动画特效设置就完成了。
我讲的很明白了吧,是不是很简单呢,想了解更多关于电脑的设置问题,详情关注好系统U盘启动官网 style="font-size: 18px;font-weight: bold;border-left: 4px solid #a10d00;margin: 10px 0px 15px 0px;padding: 10px 0 10px 20px;background: #f1dada;">如何设置ViewStub的过渡动画
1,首先,打开Windows10系统,在桌面上右键选择“此电脑”,在右键菜单中选择“属性”,点击打开。
2,在窗口中选择“高级系统设置”,点击打开
3,在窗口中点击“设置”按钮。
4,在窗口中选择“视觉效果”选项卡,点击打开。
5,最后,即可在对话框中选择要设置的动画效果,问题解决。
开发者选项窗口动画和过渡动画区别
操作细节:
1. 动画在缩略图的情形下,只有没有文本描述信息。
2. 动画在执行过程中,的圆角也会伴随着动画的变化而变化。
实现思路:
1. 点击每个缩略图的时候,创建一个相同的View(带有文本描述信息),动画执行开始时,隐藏掉被点击的缩略图,然后动画执行创建的View;执行的是缩放动画,并且在动画执行的时候,注意圆角的处理。当点击具体内容的View的时候,缩小自定义的View,并且在动画执行完毕的时候,移除掉这个自定义的View,并且显示刚才被点击的缩略图。
2. 使用UIViewControllerAnimatedTransitioning动画,注意,此时不是通过自定义View的形式来实现的了。而是带缩略图的界面是一个控制器,弹出后的详情界面是另一个控制器。而我们只需要通过过度动画来完成两个界面之间的切换。我选择这个实现方式,主要是讲解过度动画的实现原理。
代码实现:
一. 构建基本UI界面,主界面是一个ViewController,下面是一个UIScrollView,用来存放缩略图(也可以直接使用UICollectionView)。界面如下:
三. 主界面实现基本代码:
- (void)viewDidLoad {
[super viewDidLoad];
[self setupList];
}
- (void)setupList {
for (NSInteger i = 0; i < self.mockupData.count; i++) {
Herb *herb = self.mockupData[i];
UIImageView *imageView = [[UIImageView alloc] init];
imageView.image = [UIImage imageNamed:herb.image];
imageView.tag = i + kBaseTag;
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.userInteractionEnabled = YES;
imageView.layer.cornerRadius = 20.0;
imageView.layer.masksToBounds = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(clickImage:)];
[imageView addGestureRecognizer:tap];
[self.scrollView addSubview:imageView];
[self positionListItems];
}
}
- (void)positionListItems {
CGFloat itemHeight = self.scrollView.frame.size.height * 1.33;
CGFloat ratio = [UIScreen mainScreen].bounds.size.height / [UIScreen mainScreen].bounds.size.width;
CGFloat itemWidth = itemHeight / ratio;
CGFloat padding = 10.0;
for (NSInteger i = 0; i < self.mockupData.count; i++) {
UIImageView *imageView = (UIImageView *)[self.scrollView viewWithTag:i + kBaseTag];
imageView.frame = CGRectMake(padding + (itemWidth + padding) * i, 0, itemWidth, itemHeight);
}
self.scrollView.contentSize = CGSizeMake(padding + (itemWidth + padding) * self.mockupData.count, 0);
}
- (void)clickImage:(UITapGestureRecognizer *)tap {
self.selectedImageView = (UIImageView *)tap.view;
NSInteger index = tap.view.tag - kBaseTag;
Herb *herb = self.mockupData[index];
HerbDetailsViewController *herbVC = [[HerbDetailsViewController alloc] init];
herbVC.herb = herb;
[self presentViewController:herbVC animated:YES completion:nil];
}
其中的mockupData是一个数组,存放的是Herb模型数据集合。而Herb模型的结构如下,其实就是主要获取name和image信息,用来展示:
@interface Herb : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *image;
@property (nonatomic, copy) NSString *license;
@property (nonatomic, copy) NSString *credit;
@property (nonatomic, copy) NSString *descriptions;
- (instancetype)initHerbWithName:(NSString *)name image:(NSString *)image license:(NSString *)license credit:(NSString *)credit descriptions:(NSString *)descriptions;
@end
注意clickImage方法执行的tap手势操作,这里是用presentViewController 的形式弹出HerbDetailsViewController的。此刻运行代码,效果如下:
现在的效果就是系统默认的模态对话框的展现形式。但这并不是我们想要的效果,所以我们可以自定义过度动画。让ViewController 遵守UIViewControllerTransitioningDelegate协议,然后在clickImage方法中,添加如下代码:
herbVC.transitioningDelegate = self;
然后实现两个自定义模态动画效果的代理方法:
- (id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source;
- (id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed;
这两个方法对应的分别是弹出模态层和退出模态层。注意这两个方法返回的均是
UIViewControllerAnimatedTransitioning,所以我们可以自定义遵守这个协议的类,来完成自定的动画效果来取代系统默认的这种动画执行效果。
窗口动画和过渡动画是指在窗口(activity或dialog)切换时的显示动画,窗口动画的范围相对较广,包括activity和dialog,而过渡动画只包括activity。
第一种方法是调用overridePendingTransition的方法,记得要在startActivity之前调用,还可以用startActivity(Intent, Bundle)设置Bundle来实现,这种可以跨Context,而overridePendingTransition只能在当前app内实现,具体做法是ActivityOptions.makeCustomAnimation(context, enterResId, exitResId).toBundle(),这种方法要求系统是4.1以后的。这两种方法实现的都是过渡动画。 前面这些方法都只能做activity的动画,要做dialog的动画,就必须用窗口动画。方法是设置style,然后dialog.getWindow().setWindowAnimations(R.style.MyStyle)或者dialog.getWindow().getAttributes().windowAnimations = R.style.MyStyle;这样就可以在弹出dialog的时候播放动画了。窗口动画也可以作用在activity上,style的设置一样,代码也差不多,直接在activity内就可以调用getWindow这条方法。style还有另外一种做法: 这种设置的是过渡动画,只对activity有用,对dialog没用。(除了用getWindow来设置动画资源外,还可以在你的Theme里添加一个item,item的name是android:windowAnimationStyle,然后指定上面的一种style)。 从原理上看,窗口动画和过渡动画其实就是系统在切换窗口时读取相应的动画资源,上面的所有做法本质上就是在替换那些资源。开发者需要处理的是如何选择,是窗口动画还是过渡动画。如果是dialog,只有窗口动画可选,也只能通过style来完成。如果是activity,就两种动画都可以,但大多情况下还是用过渡动画,因为通过像overridePendingTransition这些api可以很简单的实现,而如果想把动画应用到整个Activity,用style就更方便,至于用上面哪种style,其实没什么影响。 在实际的开发中,其实并不提倡用上面这些方法,因为手机的设置可以关闭这两种动画(在开发者选项那里),你没法保证app一定能显示动画。对于activity动画来说,可以在新的activity初始化结束后启动常规的动画,但这种方法要求你必须等到窗口的相关view初始化结束,但什么时候结束是无法预测的,这和手机性能有关,所以你可以设置定时器来播放,而对于dialog就没有其他解决的方法了。声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。