动机:程序的某个Activity中有一个ListView,ListView的每行视图中都有ImageView,程序初始化后,通过Adapter向ImageView中加载图片,现在的需求是,点击该图片能够发送notification通知消息,消息的图标为点击的图片,现在问题来了,如何在给NotificationCompat.Builder设置setSmallIcon时填入ImageView中图片的ID?

上网搜索一番后无果,于是想到在给ImageView加载图片时似乎传入了一个图片ID(iv_cheat_icon.setImageResource(user.getHeadImage()); 注:iv_cheat_icon是一个ImageView,       user.getHeadImage()是一个图片的id(R.mipmap.tupian)),于是打开ImageView源码中的setImageResource(int resId)的源码:

public void setImageResource(@DrawableRes int resId) {
    // The resource configuration may have changed, so we should always
    // try to load the resource even if the resId hasn't changed.
    final int oldWidth = mDrawableWidth;
    final int oldHeight = mDrawableHeight;

updateDrawable(null);
    mResource = resId;
    mUri = null;

resolveUri();

if (oldWidth != mDrawableWidth || oldHeight != mDrawableHeight) {
        requestLayout();
    }
    invalidate();
}

原来我们传的id赋给了一个叫做mResource的属性,往上翻了翻,发现这是一个私有属性,于是翻了一遍方法,可惜没有获得该属性的方法,于是便只有用反射来获取了,下面代码中红色部分就是获取该ImageView中图片ID的方法,imgid就是我们的结果。感兴趣的可以试试。

Field[] fields=iv_cheat_icon.getClass().getDeclaredFields();

int imgid=0;

for(Field f:fields){

if(f.getName().equals("mResource")){

f.setAccessible(true);

try {

imgid=f.getInt(iv_cheat_icon);

} catch (IllegalAccessException e) {

e.printStackTrace();

}

}

}


 
 


如何获取已加载在ImageView中的图片ID相关推荐

  1. Python爬虫获取异步加载站点pexels并下载图片(Python爬虫实战3)

    Python爬虫获取异步加载站点pexels并下载图片(Python爬虫实战3) 1. 异步加载爬虫 对于静态页面爬虫很容易获取到站点的数据内容,然而静态页面需要全量加载站点的所有数据,对于网站的访问 ...

  2. Android中获取WebView加载的html中console.log输出的内容

    场景 Android中使用WebView加载本地html并支持运行JS代码和支持缩放: Android中使用WebView加载本地html并支持运行JS代码和支持缩放_BADAO_LIUMANG_QI ...

  3. jquery获取加载的html内容,jquery 获取ajax加载的html中部分内容

    最近在用wordpress开发企业主题的过程中,遇到不少客户都要求用ajax解决提交留言,在查找了很多资料的情况下,最终我决定手工改进,以不影响后续系统升级. 在做得过程中,我发现这个form的返回值 ...

  4. 坑:Android从相册中选择图片加载到ImageView中显示不出

  5. 浅谈Android中的异步加载之ListView中图片的缓存及优化三

    隔了很久没写博客,现在必须快速脉动回来.今天我还是接着上一个多线程中的异步加载系列中的最后一个使用异步加载实现ListView中的图片缓存及其优化.具体来说这次是一个综合Demo.但是个人觉得里面还算 ...

  6. 深度解析——图片加载到内存中的大小计算内存优化

    本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家发布 最近封装了个高斯模糊组件,正好将图片相关的理论基础也梳理了下,所以,这次就来讲讲,在 Android 中,怎么计算一张图片在 ...

  7. dlsym 如何查看一个so里面的_用dlopen,dlsym加载动态链接库.so中函数

    代码如下 static void *findSymbol(const char *path, const char *symbol) { void *handle = dlopen(path, RTL ...

  8. Resx 文件无效。未能加载 .RESX 文件中使用的类型 System.Collections.Generic.List`1请确保已在项目中添加了必需的引用。

    在C#程序编写过程中,会遇到:Resx 文件无效.未能加载 .RESX 文件中使用的类型 System.Collections.Generic.List1`请确保已在项目中添加了必需的引用. 主要原因 ...

  9. dll已加载但找不到入口点dllregisterserver_Java 是如何加载类的?

    本文只是从 Java 的角度出发,并不涉及 Android 的类加载方式. 从上一篇解析类加载机制的文章: 我们已经知道了 ClassLoader 的委托机制. 本篇文章我们来详细分析下 ClassL ...

最新文章

  1. java 遍历list 性能_java list三种遍历方法性能比較
  2. CSS 7:网页布局(传统布局,flex布局,布局套路)
  3. swift:简单使用翻页控制器UIPageViewController
  4. 深入浅出聊一聊Docker
  5. elasticsearch api中的Multi Get API操作
  6. 在硒中按TagName定位元素
  7. 项目管理之道之沟通管理-外部接口只能有一个
  8. 微软:中国市场XP主流支持服务结束时间未定
  9. 安卓开发3d模型展示源码_玩具模型样品3D打印,让玩具开发无限可能
  10. 稳定性测试怎么做,这篇文章彻底讲透了
  11. 逻辑回归之ROC曲线的绘制
  12. cAdvisor资源监控工具入门
  13. 从微信服务通知进入小程序显示环境加载失败,请稍后再试
  14. 爬虫实战—豆瓣250榜单的爬取
  15. 自同构 黎曼度量 莫比乌斯变换
  16. 如何清除 浏览器-hao123的绑定
  17. 从 广义相对论 看到 “数学陷阱”
  18. 解决cumcm17问题的代码记录(待改正)
  19. Android-0. Android studio在导航栏增加自己的功能图标(如小扳手)
  20. 什么是Richard Feynman 积分技巧

热门文章

  1. 关于水表指针的简单识别(提供一个小思路,带源码)
  2. 切换分支node_modules问题——npm ERR! This is probably not a problem with npm. There is likely additional log
  3. 无人机航摄时航高与地面分辨率的关系
  4. Oracle11g下载地址--多平台下的32位和64位
  5. VS2012代码颜色代表含义
  6. [翻译]挑战Windows极限:物理内存
  7. WIN11系统 PIN(window hello) 该选项目前不可用
  8. matlab如何进行四维拟合,如何用matlab对四维数据进行非线性拟合? - 数学 - 小木虫 - 学术 科研 互动社区...
  9. 《High-reflectivity surface measurement in structured-light technique by using a transparent screen》
  10. 移动web开发之移动端真机测试