android开发分享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); 

    尝试这个:

    以上就是android开发分享Android:context.getDrawable()的替代方法相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

     AppCompatResources.getDrawable(context, R.drawable.*) 

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/514203.html

      (0)
      上一篇 2020年11月29日
      下一篇 2020年11月29日

      精彩推荐