在android studio中根据时间改变背景
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在android studio中根据时间改变背景相关的知识,希望对你有一定的参考价值。
我想为我的活动提供不同的图像背景。背景随着时间而变化。代码如下:
Calendar c = Calendar.getInstance();
int timeOfDay = c.get(Calendar.HOUR_OF_DAY);
ConstraintLayout homeLayout = findViewById(R.id.homelayout);
if(timeOfDay >= 8 && timeOfDay < 16){
homeLayout.setBackgroundResource(R.drawable.day);
}else if(timeOfDay >= 16 && timeOfDay < 20){
homeLayout.setBackgroundResource(R.drawable.dusk);
}else if(timeOfDay >= 20 && timeOfDay < 4){
homeLayout.setBackgroundResource(R.drawable.night);
}else if(timeOfDay >= 4 && timeOfDay < 8){
homeLayout.setBackgroundResource(R.drawable.pic);
}
但是当我运行代码时,没有背景出现。
答案
我发表了自己的答案:
代码应更改为:
if(timeOfDay >= 8 && timeOfDay < 16){
//day
}else if(timeOfDay >= 16 && timeOfDay < 20){
//afternoon
}else if(timeOfDay >= 20 && timeOfDay < 24){
//night
}else if(timeOfDay>=0 && timeOfDay<4){
//night
}
else if(timeOfDay >= 4 && timeOfDay < 8){
//dawn
}
以前的if语句是(timeOfDay> = 20 && timeOfDay <4),这在数学上是不可能的。所以系统很困惑。
以上是关于在android studio中根据时间改变背景的主要内容,如果未能解决你的问题,请参考以下文章
如何在Android Studio中使图像中的特定颜色透明?
Android笔记:根据进度代码改变progressbar背景颜色,ClipDrawable,LayerDrawable,setProgressDrawable