Android小贴士-资源解析

Android

解析Android资源id

解析资源

提取资源id中的字段

resId:

1
2
3
4
5
R.drawable.xxxx
R.string.xxxx
R.color.xxxx
R.dimen.xxxx
···
  • 提取drawable、string、color、dimen等

    1
    2
    3
    4
    5
    6
    public String getResourceTypeName(int resId)
    {
    Resources resources = mView.getResources();
    String attrTypeName = resources.getResourceTypeName(resId);
    retuen attrTypeName;
    }
  • 提取xxxx资源名

    1
    2
    3
    4
    5
    6
    public String getResourceEntryName(int resId)
    {
    Resources resources = mView.getResources();
    String attrEntryName = resources.getResourceEntryName(resId);
    retuen attrEntryName;
    }
  • 提取资源中的包名

    1
    2
    3
    4
    5
    6
    public String getResourcePackageName(int resId)
    {
    Resources resources = mView.getResources();
    String packageName = resources.getResourcePackageName(resId);
    retuen packageName;
    }
  • 提取资源中的包名+资源

    1
    2
    3
    4
    5
    6
    public String getResourceName(int resId)
    {
    Resources resources = mView.getResources();
    String resourceName = resources.getResourceName(resId);
    return resourceName;
    }

组装资源

已知资源的PackageName、TypeName、EntryName,读取资源Id,通过该方式可判断资源是否存在。

1
2
3
4
5
6
7
8
9
/**
*
* @return resId=0 means resId is not exist.
*/
public int getResourceId(String packageName, String typeName, String entryName)
{
int resId = getResources().getIdentifier(entryName, typeName, packageName);
return resId;
}

推广

Android应用中换肤可参考该方式:AndroidSkinLoader

谢谢老板,请尽情用红包来蹂躏我吧!!!
0%