Olá a todos
,
Tem como mudar a cor de fundo (e dos textos) do menu que aparece quando vc clica no botão menu do emulador? Estou falando do menu criado em uma aplicação minha.
Obrigada desde já pela atenção 
Aplicação em anexo…
Olá a todos
,
Tem como mudar a cor de fundo (e dos textos) do menu que aparece quando vc clica no botão menu do emulador? Estou falando do menu criado em uma aplicação minha.
Obrigada desde já pela atenção 
Aplicação em anexo…
Descobri um site na internet (http://www.gitshah.com/2011/06/how-to-change-background-color-of.html) em que o cara ensina como fazer isso. Procurei testar, mas não funcionou, deu o erro: “The application has stopped unexpectedly. Please try again.”
Não sei exatamente qual o erro, até porque o código é meio avançado. Postei o projeto para de repente vocês darem uma olhada…
Obrigada pela atenção 
Olá nissivim,
lá no teu layout change_menu_background.xml voce utilizou a tag TextView com as letras minusculas, por isso estava dando erro. Lembre-se do case sensitivity, tem que escrever certinho “TextView”.
Quando precisar, é só chamar. 
Abçs.
Muito obrigada Caio
! Realmente eu não tinha notado esse errinho, que aliás foi cometido pelo rapaz que desenvolveu o projeto. Deu certo, pena que parece que não dá para colocar o texto do menu em negrito e a mudança da cor no texto só aparece quando vc pressiona o botão…
Olá nissivim,
andei fazendo uns testes aqui e consegui deixar o texto do menu em negrito.
Na classe “ChangeMenuBackgroundColorActivity” tem um metodo chamando setTextColor que foi criado pelo cara que fez esse código, e ele pegava o metodo da view setTextColor:
private void setTextColor(View view) {
try {
Method setTextColor = view.getClass().getMethod("setTextColor", int.class);
setTextColor.invoke(view, "0x80FFFFFF");
} catch (Exception e) {
//Log.e("##Menu##", "Error while setting the text color: " + e.getMessage(), e);
}
}
dai eu troquei para pegar o metodo setTypeface(Metodo compativel com o atrbuto setStyle da tag TextView do xml):
[code]
private void setTextColor(View view) {
try {
Method setTextColor = view.getClass().getMethod("setTypeface", Typeface.class);
setTextColor.invoke(view, Typeface.defaultFromStyle(Typeface.BOLD));
} catch (Exception e) {
//Log.e("##Menu##", "Error while setting the text color: " + e.getMessage(), e);
}
}
[/code].
Espero ter ajudado.
Qualquer duvida é só chamar.
Ajudou sim!
Nossa, vendo vocês eu penso: Tenho MUITO o que aprender. Me diz uma coisa, tem como incluir a cor do texto nesse código, algo do tipo Typeface.BLACK?
O código poderia ficar assim:
private void setTextColor(View view) {
try {
Method setTextColor = view.getClass().getMethod("setTypeface", Typeface.class);
setTextColor.invoke(view, Typeface.defaultFromStyle(Typeface.BOLD));
setTextColor.invoke(view, Typeface.defaultFromStyle(Typeface.BLACK));
} catch (Exception e) {
//Log.e("##Menu##", "Error while setting the text color: " + e.getMessage(), e);
}
}
Obrigada viu Caio? Quem sabe esse código não será útil para outros aqui no blog…
tem sim, mas voce não vai utilizar o Typeface para setar a cor, tem que ser o setTextColor.
private void setTextColor(View view) {
try {
Method setTextColor = view.getClass().getMethod("setTextColor", int.class);
setTextColor.invoke(view, R.color.colorblack);
} catch (Exception e) {
//Log.e("##Menu##", "Error while setting the text color: " + e.getMessage(), e);
}
}
Não fuciona esse código da cor… O caminho deve ser outro.
Desculpa, erro meu, faltou informação.
Esse é o id de um item no arquivo “colors.xml” que voce precisa criar na pasta “values”.
o meu código ficou assim:
Arquivo “ChangeMenuBackgroundColorActivity”
private void setTextColor(View view) {
try {
Method setTypeface = view.getClass().getMethod("setTypeface", Typeface.class);
setTypeface.invoke(view, Typeface.defaultFromStyle(Typeface.BOLD));
Method setTextColor = view.getClass().getMethod("setTextColor", int.class);
setTextColor.invoke(view, R.color.color_white);
} catch (Exception e) {
//Log.e("##Menu##", "Error while setting the text color: " + e.getMessage(), e);
}
}
Arquivo “colors.xml”
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="menu_normal">#3A77A6</color>
<color name="menu_focused">#ff097400</color>
<color name="menu_pressed">#ff005E24</color>
<color name="fundo_tela">#ff000000</color>
<color name="texto_tela">#ffffff</color>
<color name="color_white">#ffffff</color>
</resources>
Nesse exemplo eu estou setando texto em branco e em negrito.
Qualquer dúvida é só chamar.
Abçs.
Obrigada Caio, depois vou testar.
Não deu certo mudar a cor do texto… MAS pelo menos o resultado que consegui até agora já tem alguma utilidade, se o app for usado num Android 2.2, num 2.3.3 não dá resultado nenhum, o layout padrão se sobrepõe completamente, deixa para lá… Pelo menos tentamos! 
[quote=Marky.Vasconcelos]@caio
Por que voce está usando reflection para acessar os campos da View?[/quote]
Eu utilizei o exemplo que a nissivim pegou na internet.
Somente adaptei o código.