Хотя этот вопрос уже довольно старый, вам не хватает того, что «id» и «drawable» - это разные типы ресурсов.Таким образом, вместо
getResources().getIdentifier(stringId, "id", "my.Package");
это
getResources().getIdentifier(stringId, "drawable", "my.Package");
Вы также можете получить имя пакета с контекстом активности, например activityContext.getPackageName()
/**
* Returns Identifier of String into it's ID as defined in R.java file.
* @param pContext
* @param pString defnied in Strings.xml resource name e.g: action_item_help
* @return
*/
public static int getStringIdentifier(Context pContext, String pString){
return pContext.getResources().getIdentifier(pString, "string", pContext.getPackageName());
}