A man accused of shooting an 8-year-old boy in the face Tuesday afternoon in Dallas is being held on a $2.2 million bond.

D.J. Maiden, who turned 8 on Sunday, was shot at the La Bella Palm apartment complex on Royal Lane. The boy's grandfather, George Locklin, said his grandson was shot while collecting toys he had gotten for his birthday.

"It's unbelievable," Locklin said. "I mean, I don't know anyone that could put it into words."

"Mother sends you out to gather your toys and, you know, someone fires two shots at you," he said. "I mean, [we] just can't put it into -- we coping with it, you know?"

Maiden had emergency surgery at Children's Medical Center in Dallas, where he remains in critical condition, police said.

Witnesses said a man -- whom neighbors did not recognize and was wearing only one shoe -- was handing out free firecrackers to children playing tag in the parking lot.

The man had a brief exchange with Maiden, who then started running back toward his apartment. Witnesses said the man pulled out a handgun and fired twice at the child, hitting him once in the cheek.

Brian Cloninger, 46, was arrested and charged with felony injury to a child.

According to the arrest warrant, Cloninger was found next to his pickup truck. A handgun was found inside the truck.

Witnesses said the gunman tried to drive away after the shooting, but his car wouldn't immediately start, allowing people time to get a good description of the man's vehicle.

According to the arrest warrant, Cloninger told a witness, "I did that."

Residents of the apartment complex said they were "freaked out" by the shooting.

"I heard the shot and then I just seen blood everywhere," Jemiah Thompson said. "I come outside and people are everywhere, screaming, 'He got shot, he got shot.'"

Thompson described the man as "very creepy" and said he had never seen him before.

"I guess he said something to the little kid, and he didn't like it, and the kid took off running," he said. "Then the guy shot at him."

Maiden's best friend, 12-year-old T.J. Liesmann, heard the gunfire and then saw his friend running with his jaw in his hand.

"heard the gunfire, and DJ came and ran," he said. "He ran on the logs right here, and I said, 'DJ, what happened?' And he said, 'Help me, T.J., I got shot.'"

Liesmann said it has been on his mind ever since.

"[I'm] mad and upset that dude shot my friend," he said.

Gregory Taplin said he noticed Cloninger standing in the apartment complex parking lot several hours before the shooting. Taplin knew he wasn't a resident, so he went up to talk to him.

"'Do you stay here?' 'Da da da da' -- that's all he was saying," Taplin said. "He was gone, man. He was spaced out. He's up there, like," Taplin said, blinking his eyes repeatedly. "I said, 'What's wrong with this man?'"

Hours later, Taplin heard the gunshots and went outside. Scared residents pointed at Clonginer as he was standing near his truck. Tapline went up to him.

"Did you shoot that boy? He said, 'Yeah, I shot him.' I said, 'Why?'" Taplin said.

But Cloninger only muttered words that didn't make sense, he said.

Editor's Note: The victim in the shooting was originally identified to NBC 5 as a 7-year-old boy. Police revealed more details Wednesday that updated the victim's age to 8. We regret the error.

NBC 5's Omar Villafranca contributed to this report.