进入应用动画闪屏, android5.0初始动画,不执行解决等方案总结

 这个问题是这几天还在开发中遇到的问题,困扰了我几天终于改决了,现在记录下。
              如果你的应用非常小有可能是遇不到这个问题的。
              一.系统5.0以下解决方案:在oncreate方法中做一下线程延迟,大概几十毫秒就可以了。

              二.系统5.0中的onCreate方法使用属性动画一点效果都没有(根本不会动),可以使用handle的延迟方法

                 

 new Handler().postDelayed(new Runnable() {
            
            @Override
            public void run() {
                // TODO Auto-generated method stub
                ObjectAnimator animator=ObjectAnimator.ofFloat(target, propertyName, values);
                ...
                animator.start();
            }
        }, 100);
 就有作用了。

三,虽然这样解决了问题,但都不是很好的方法,也没有从根本上解决问题。我又新建了工程(就一个按钮的布局),并没有出现上面  的情况。我把公司项目里加载so库的方法注释掉,发现动画也流畅了很多。所以要解决问题,根本还是要从,项目的优化入手
 但上面的领导不同意现有的框架的大的改动,也不同意再多做一个activity动画完了,再跳过来。
 最后我也在想在activity里面是否可以setContentView()再次,如果可以就可以像跳activity一样了,结果是可以的 。

 说到这里可能大家也想到方法 ,对的,就是先用一张图片和主界面一样的图片先做动画。 动画完了,再setContentView真的布局,再加载:

<span style="font-size:12px;">@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
      
        ImageView image=new ImageView(this);
        image.setBackgroundRerouse(...);
        setContentView(inflate);

        try {
            Thread.sleep(150);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        //动画
        AnimatorUtils.addAnimator(image, this, R.animator.gaaaainit);
        Animator startParallelExecuteAnimators = AnimatorUtils.startParallelExecuteAnimators();
        startParallelExecuteAnimators.addListener(new ViewUtil.AnimListener() {
 
            @Override
            public void onAnimationEnd(Animator animation) {
                //动画完后,加载真的布局及数据
                inflate = LayoutInflater.from(this).inflate(R.layout.home_horizontalinit, null);
                setContentView(inflate);
                GlaNative.setIUpdateViewContext(home_horizontalActivity.this, "home_horizontal");
                CurPageName = "homeaction";
                GlaNative.InitResolution(home_horizontalActivity.this, R.drawable.home_horizontalbackground,
                        CurPageName, 0);
                m_gestureDetector = new GestureDetector(home_horizontalActivity.this);
                m_gestureDetector.setIsLongpressEnabled(true);
                Bundle bundle = new Bundle();
                bundle = home_horizontalActivity.this.getIntent().getExtras();
                。。。</span>

                 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值