Leno has signed an initial three-year contract at Craven Cottage ahead of their Premier League opener against Liverpool on Saturday. There is also the option for a further year in the deal.
Leno had been a regular for Arsenal since joining from Bayer Leverkusen for £20m in the summer of 2018 but lost his position to Aaron Ramsdale last season, making just four appearances in the Premier League and eight in total.
Leno made 125 appearances in total for Arsenal and kept 37 clean sheets.
The 30-year-old, who has nine caps for the German national team, is Fulham's fourth summer signing after Joao Palhinha, Kevin Mbabu, Andreas Pereira and Manor Solomon.
Speaking to FFCtv, Leno said: "It feels amazing to finally be here. I can't wait to join the team, to train and play with the team.
"I'm relieved that everything is done. I'm just happy to be here. It took a little bit of time but in the end we made it, and that's the most important thing."
Fulham co-owner Tony Khan added: "Bernd Leno is the goalkeeper whom we have pursued steadfastly throughout this transfer window, and we're very excited that we've reached a transfer agreement and he's now fully committed to Fulham!
"He has played at the highest level, and he'll bring this experience and his leadership to our team. He'll be a great addition to Marco's squad, who are all excited for the season ahead! Come on Fulham!"