Nava:
Like so many things, it varies by location; it also varies by which Roma you’re talking about; it varies by “it’s ok when I say it, but not when others say it”. Most Spanish Romanís will use gitano; they don’t expect payos to know the word “romaní” and some think that using it in Spanish sounds too much like an anthropology documentary rather than like normal conversation.
Like so many other words, how you say it makes a world of difference; a mother calling her roaming toddler with “ven p’acá, gitano” (c’mere, you gypsy) wouldn’t be considered offensive by most people, but someone using it to mean “thief” - you don’t need to be Roma to find that offensive. It’s completely anecdotal, but I’m currently in Seville, which has a very-large Romaní population, and I noticed that when Shakira’s song “Gypsy” came out, local radio stations played it exclusively in English. I asked my brothers, and in Northern Spain (where the Gypsy population is lower and much less visible) it was being played in Spanish. Check out the lyrics: she uses it to mean “a roamer, someone who doesn’t stay put” but she also talks about “stealing everything you have” - oops.
Nava , that’s likely a case of Shakira’s translations not being word for word exact (as was discussed in another thread). The Spanish version doesn’t use gitana for the later meaning, but does for the first meaning (roamer, doesn’t stay put). The English version is the one that specifically mentions stealing clothes.