Android:context.getDrawable()的替代方法
我在我的项目中使用了context.getDrawable()
:
Drawable greenProgressbar = context.getDrawable(R.drawable.custom_progressbargreen);
但是,Eclipse给我一个错误,它需要一个Minimum API level of 21
。 这意味着经过快速的谷歌search我的APP只能在Android 5.0
。 由于不是所有的设备都使用这个版本的Android我想有一个替代context.getDrawable()
。
根据SDK 22文档,以前接受的方法已被弃用。
在android.os.Build.VERSION_CODES#JELLY_BEAN之前,当传入的资源ID是另一个Drawable资源的别名时,此函数将无法正确检索最终configuration密度。 这意味着如果别名资源的密度configuration与实际资源不同,则返回的Drawable的密度将不正确,导致缩放不正确。
正如在这个答案中指出的更好的解决scheme将是使用ContextCompat : ContextCompat.getDrawable(context, R.drawable.***)
尝试在上下文之后添加一个getResources()
,所以这个:
Drawable greenProgressbar = context.getResources().getDrawable(R.drawable.custom_progressbargreen);
应该pipe用。
我有一个相同的情况,我想引用getDrawable()方法,现在已经弃用。
我用什么,
myButton.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.ic_btn_off));
希望对你有帮助
我以前有过类似的问题。 你有没有试过这样做?
Drawable greenProgressbar = context.getResources().getDrawable(R.drawable.custom_progressbargreen);
尝试这个:
AppCompatResources.getDrawable(context, R.drawable.*)