更改imageView随时间变化



我试图根据一天中的时间更新imageView,但由于某些原因,它不起作用,也没有出现任何编译错误。

代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = findViewById(R.id.imageView);
Calendar cal = Calendar.getInstance();
int timeOfDay = cal.get(Calendar.HOUR_OF_DAY);
if (timeOfDay >=20 && timeOfDay <=4) {
imageView.setImageResource(R.drawable.night);
}else if (timeOfDay >= 5 && timeOfDay <= 8) {
imageView.setImageResource(R.drawable.sunset);
} else if (timeOfDay >= 9 && timeOfDay <= 16) {
imageView.setImageResource(R.drawable.morning);
}
else if (timeOfDay >= 17 && timeOfDay <= 19) {
imageView.setImageResource(R.drawable.sunset);
}
}

Activity.xml代码:

<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="606dp"
android:scaleType="fitXY"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

不执行此if (timeOfDay >=20 && timeOfDay <=4)条件(false(。因为不存在大于等于20并且<4

根据你的情况,你还需要这两个条件

if (timeOfDay >=0 && timeOfDay <=4)

else if (timeOfDay >=20 && timeOfDay <=24)

为它添加这两个和相关的图像,并删除不执行上述条件

你可以像下面那样傻笑

if (timeOfDay >= 5 && timeOfDay <= 8) {
imageView.setImageResource(R.drawable.sunset);
} else if (timeOfDay >= 9 && timeOfDay <= 16) {
imageView.setImageResource(R.drawable.morning);
}
else if (timeOfDay >= 17 && timeOfDay <= 19) {
imageView.setImageResource(R.drawable.sunset);
}
else{
//exectue this for 0-4 and 20-24
imageView.setImageResource(R.drawable.night);
}

您的代码只能在5到19之间工作,因为(timeOfDay >=20 && timeOfDay <=4)总是返回false。

(timeOfDay>=20&&timeOfDay&lt;=4(

无法访问该条件。因为不存在大于等于20并且<4.在这种情况下,因为timeOfDay总是>0,所以将代码更改为

(timeOfDay>=20|timeOfDay<=4(

不要忘记重新格式化代码。

相关内容

  • 没有找到相关文章

最新更新