今天,简单讲讲android如何解决setbackgrounddrawable过时的问题。

解决前:

Drawable draw = getResources().getDrawable(R.drawable.top_day);view.setBackgroundDrawable(draw);

遇到问题:

setBackgroundDrawable is deprecated  as of API 16;

即过时,需要替换

解决方案一:(setBackgroundDrawable换为setBackgroundResource)

view.setBackgroundResource(R.drawable.top_day);

使用setBackgroundResource方法且传入的参数直接是resource的id,无需再去通过ID获得View,更加方便。

解决方案二:(使用setBackground替代)

view.setBackground(getResources().getDrawable(R.drawable.top_day));

需要注意的是:虽然setBackground和setBackgroundResource都可以替代setbackgrounddrawable,但是setBackground是从API 16以后才有的,之前没有这个函数。所以最好使用setBackgroundResource,这个方法是从Api 1开始就有,所以就不用担心了。

也可以使用如下方法:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {    setBackground(drawable);} else {    setBackgroundDrawable(drawable);}

完美解决~

如果一直都在尝试平凡,你永远不知道自己有多出色~

更多相关文章

  1. android 9.0获取mac地址的方法
  2. Android实现音量调节的方法
  3. android常用intent的方法
  4. Android EditText 自带清除按钮 的一种解决方案(ViewGroup实现)
  5. Android: Failure [INSTALL_FAILED_DEXOPT] and Failure [INSTALL
  6. 2012-7-20 android 图片叠加效果——两种方法
  7. Android右滑返回上一个界面的实现方法
  8. 系统关闭GPRS数据流量和 GPS的方法
  9. Android添加半透明操作提示的方法

随机推荐

  1. Android学习系列(29)--App调试的几个命令
  2. Android Zipalign工具优化Android APK应
  3. Android实现宫格图片连续滑动效果
  4. Android(安卓)Geofence的学习(三)总结、Dem
  5. 移动Android开发-规范文档
  6. android 关于appcompat v7出错问题与解决
  7. Android中的AIDL
  8. Android自动解除系统锁屏
  9. android进程间服务通信示例
  10. Android(安卓)Activity之间跳转与传值