在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 Studio

Android studio 添加背景图片问题

android studio怎么让文字居中

Android笔记:根据进度代码改变progressbar背景颜色,ClipDrawable,LayerDrawable,setProgressDrawable

改变Android按钮背景颜色的高效方法