如何根据Android应用程序中的日期更改主要活动中的图像

Posted

技术标签:

【中文标题】如何根据Android应用程序中的日期更改主要活动中的图像【英文标题】:How to change image in main-activity based on date in android application 【发布时间】:2021-12-16 07:25:07 【问题描述】:

正在寻找一个需要日复一日更换图像的安卓应用程序。

示例:如果系统日期=01.01.2021,则应显示 image1,否则应显示 image2。

这是我的安卓源代码:

package com.wavedevelopers.chat;

import androidx.appcompat.app.AppCompatActivity;
import java.util.Calendar;
import java.util.Date;

import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity 


    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView;

        Calendar cal = Calendar.getInstance();

        Date now_date = null;
        cal.setTime(now_date);

        imageView = (ImageView)findViewById(R.id.content);

        if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY)
        
            imageView.setImageResource(R.drawable.a1);
        
        else if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.TUESDAY)
        
            imageView.setImageResource(R.drawable.a2);
        


    

【问题讨论】:

看起来不错。你遇到了什么问题? 这段代码检查星期几并显示图像,但我需要检查日期和月份并显示图像.. 好吧,你没有问这个。请看我的回答。 感谢您的工作和回复 :) 您能否将其设为“DATE”而不是“DAY_OF_WEEK”?它会更有帮助。再次感谢。 这是您要寻找的答案吗?如果是这样,请考虑将我的答案标记为答案,并在任何信息丰富的 cmets 上点击向上箭头。否则,我很乐意为您解答任何其他问题。 【参考方案1】:
    package com.wavedevelopers.chat;

import androidx.appcompat.app.AppCompatActivity;
import java.util.Calendar;
import java.util.Date;

import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity 


    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView;

        Calendar cal = Calendar.getInstance();
        int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);

        imageView = (ImageView)findViewById(R.id.content);

        if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY && cal.get(Calendar.MONTH) == Calendar.NOVEMBER)
        
            imageView.setImageResource(R.drawable.a1);
        
        else if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.TUESDAY)
        
            imageView.setImageResource(R.drawable.a2);
        
        else if(dayOfMonth == 1) 
            System.out.println("It's the first of the month")
        

    

【讨论】:

感谢您的工作和回复 :) 您能否将其设为“DATE”而不是“DAY_OF_WEEK”?它会更有帮助。再次感谢。 添加了一个额外的“else if”,条件检查它是否是本月的第一天。但请注意,因为满足第一个条件(因为今天是星期一,月份是九月),所以不会检查 else 语句。 再次感谢您的回复,最后,我想要验证 DATE 和 MONTH 的代码示例:如果(日期和月份 = 本地日期)然后显示图像。 告诉我你的尝试并告诉我哪里没用。 if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY && cal.get(Calendar.MONTH) == Calendar.NOVEMBER) 上面的代码用于验证 DAY_OF_WEEK 和 MONTH,但我需要验证日期和月份

以上是关于如何根据Android应用程序中的日期更改主要活动中的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 android studio 中的 listview 项目点击更改活动图像和文本? java 或 kotlin

如何更改图像并在 5 秒后重新运行线程中的主要活动后不回到 android 中的基本布局

如何更改 Android 应用中的默认活动?

在活动一中选择的微调项目上,必须更改第二个活动中的文本视图

如何禁用主要活动的方向更改? [复制]

如何更新线程中的引用和活动?