Android中通过拖拽调色板编辑器添加系统Drawable后,Java代码设置presence_online资源的方法咨询
解决方法
嘿,这个问题其实超简单!你直接在setImageResource()里填android.R.drawable.presence_online就可以了。
背后的逻辑是这样的:
- 你在XML里写的
@android:drawable/presence_offline,指向的是Android系统自带的内置资源,不是你自己项目里的本地drawable文件。 - 在Java代码里,引用系统内置资源的时候,必须用
android.R这个类的引用,而不是你项目包名下的那个R类(比如com.yourappname.R)。
所以最终能用的Java代码就是:
image2.setImageResource(android.R.drawable.presence_online);
额外提一句:app:srcCompat是AndroidX提供的兼容属性,主要是为了更好支持矢量图这类资源,但它并不会改变你引用系统资源的方式——不管XML里用android:src还是app:srcCompat,系统内置drawable的Java引用逻辑都是一样的哦。
内容的提问来源于stack exchange,提问作者Dimitri LE MOING
相关产品推荐
相关产品推荐

