The 33-year-old published the photo when seven-week-old Penny "pooped" in his bed, warning that she would go "bye byes" if it happened again.
After his 825,000 followers reacted with outrage to the images earlier this week, Margera later invited news crews around to his home in order to apologise.
"I'm on Jackass, so I like humour like that, and I like shock value purposes," he told Fox News.
"Sorry if I offended anybody. But I'm an animal lover and I'd never hurt this dog in a million years, and the gun is a fake gun."
He added: "I just like to joke around. I would never, ever in a million years ever hurt a dog or a cat or any animal."
Margera recently hit headlines after deciding not to press charges against a naked female intruder at his home.
The star was detained at an airport in North Carolina in August for smelling of alcohol and loudly yelling obscenities at fellow passengers.
New! Digital Spy breakfast show - watch Amie Parker-Williams discuss the day's biggest stories including Girls Aloud, The X Factor's Carolynne and more: