前言
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);
}
}
});