getIdentifier获取资源Id的踩坑之路

前提:
之前做项目遇到一个问题,就是关于帧动画来的,我是用Java来实现。实现该动画的工程作为另一个工程的引用。

先来说下 getIdentifier 函数:

int id= getResources().getIdentifier("pig", "drawable", "com.zjt.xxxxx");

第一个参数表示放入drawable文件夹中图片的名称,
第二个参数表示资源属性是ID或者是Drawable,
第三个参数表示包名。

如果找到了,返回资源Id,如果找不到,返回0 。

我的部分代码如下:

Drawable drawable = null;
        for(int i=1; i<=15; i++){
            int id = getResources().getIdentifier(imgName + i, "drawable", "com.zjt.xxx");
            drawable = getResources().getDrawable(id);
            anim.addFrame(drawable, 100);
        }
        anim.setOneShot(false);
        mCubeImg.setImageDrawable(anim);
        anim.start();

运行结果报错:android.content.res.Resources$NotFoundException: Resource ID #0x0, 也就是说通过getIdentifier获取的资源 id = 0,即表示获取资源id失败。
为什么呢,因为我的包名写错了,不应该写本工程的包名,而应该写成引用本工程的那个工程的包名。

你可能感兴趣的:(点滴记录)