BF low sex drive!

My boyfriend and I used to have sex regularly 2-3 times a week. When we first started dating, he was really fit. Big muscles, lots of weight lifting. He stopped working out almost entirely when we got together. We've been together a little over a year now and the last few months, we've had sex less and less. Because he never wants to. He'll always turn me down. Buuuut he jerks off a lot. He began calling himself fat a while back and kept saying he needed to go to the gym again. He won't let me take showers with him anymore and makes up lame excuses as to why. Just the other night he made me leave the room while he changed and told me he didn't want me to see him naked. We were fighting about me getting upset over not having sex. But I'm starting to think his self esteem is just so low that he doesn't want to have sex with me or be naked around me. Could this be due to low testosterone or related to it?? He took a lot of supplements when he worked out.