Android片段中的动态背景
Posted
技术标签:
【中文标题】Android片段中的动态背景【英文标题】:Dynamic background in Android fragment 【发布时间】:2020-02-22 20:37:29 【问题描述】:我想根据一天中的时间更改片段的背景(白天亮,夜晚暗)。现在,我在片段布局中硬编码了背景图像:
android:background="@drawable/weatherbg"
但是要拥有动态背景,我假设我必须在片段活动类中的 onCreate 方法中执行此操作? 我不确定如何,因为您不能在片段中使用 setContentView。 我知道我必须编写一些条件代码,但不确定在片段内设置背景图像的方法是什么。
这是我第一次使用 Android,非常感谢任何帮助。
【问题讨论】:
你想实现暗模式吗? @JimaleAbdi 嗨,不,我不想实现暗模式,我只是想有一个白天/黑夜背景,因为页面显示天气预报。 好的,我认为你有一个白天和晚上的可绘制对象,如果是的话,它很容易实现,但检测是白天还是黑夜需要注意 @JimaleAbdi 是的,但是如何在我的活动中调用可绘制对象/设置背景?现在我在布局 xml 中设置它,但我认为你不能在那里有条件语句(?)(如if day: background="@drawable/day"
)
【参考方案1】:
您可以使用setBackgroundResource()
更改背景,但您必须为您的View
提供ID
RelativeLayout rl;
rl = (RelativeLayout)findViewById(R.id.relativeLayout1); // the id of the view
rl.setBackgroundResource(R.drawable.day_image); // change the background
来检测是白天还是晚上你可以使用this免费API也看this
【讨论】:
谢谢!但是,我在天气片段中做了以下操作,但它不起作用:public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) View view = inflater.inflate(R.layout.fragment_weather, container, false); view.setBackgroundResource(R.drawable.weatherbg);
可能是在我的 styles.xml 中,我为整个应用程序设置了一个主题?我需要额外的 smt 来覆盖它吗?再次感谢您的帮助。
如果你使用片段参考this以上是关于Android片段中的动态背景的主要内容,如果未能解决你的问题,请参考以下文章