Android怎么解决不同版本SDK的兼容性问题

前言

Android的SDK有很多级别,一般高版本的SDK是无法在低版本的安卓系统上面执行的,更甚者容易导致安卓应用崩溃。

简单粗暴的解决方法自然是更换更高级别的SDK了,不过如果这么做,也就不存在需要解决兼容性的问题,如何在低版本上安卓系统上运行高版本的SDK,又满足Android Lint的编译检查需求呢?

接下来我们以按钮的动画效果为例。

在这里插入图片描述

从图中可以看到,Animator的使用要求SDK的等级为21以上,即至少要求lollipop版本的SDK。

其实我们只需要加一个判断条件,就通过Android Lint的编译检查:

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP)

该语句判断了当前SDK的版本是否大于lollipop,如果当前系统版本是高于指定版本的,则运行动画效果,否则简单的将按钮设为不可见即可。

button1.setVisibility(View.INVISIBLE);

完整代码

button1=findViewById(R.id.button);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
                int cx=button1.getWidth()/2;
                int cy=button1.getHeight()/2;
                float radius=button1.getWidth();
                Animator anim= ViewAnimationUtils.createCircularReveal(button1,cx,cy,radius,0);
                anim.addListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        super.onAnimationEnd(animation);
                        button1.setVisibility(View.INVISIBLE);
                    }
                });
                anim.start();
                }else{
                    button1.setVisibility(View.INVISIBLE);
                }
            }
        });

你可能感兴趣的:(Android)