Se você estiver cansado daquele fundo preto e daquela cor laranja quando você clica em algum item de um ListView, seus problemas acabaram, abaixo irei mostrar como fazer isso:
Modo antigo:
Modo novo (você utilizando sua criatividade nas cores poderá ficar bem melhor que o exemplo abaixo):
Abaixo segue uma lista com os principais fontes que serão utilizados no exemplo:
list_bg.xml
text_bg.xml
list.xml
main.xml
colors.xml
list_bg.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/amarelo" android:state_pressed="false" android:state_selected="false"/> <item android:drawable="@color/vermelho" android:state_pressed="true"/> <item android:drawable="@color/vermelho" android:state_pressed="false" android:state_selected="true"/> </selector>
text_bg.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/preto" android:state_pressed="true"/> <item android:color="@color/preto" android:state_focused="true"/> <item android:color="@color/vermelho"/> </selector>
list.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="2dp" android:background="@color/list_bg"> <TextView android:id="@+id/post" android:gravity="center_vertical" android:layout_height="50dp" android:layout_width="wrap_content" android:text="20sp" android:textColor="@color/text_bg" android:textSize="20sp"/> </RelativeLayout>
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:smoothScrollbar="true" android:clickable="true" android:layout_marginBottom="36dp" /> </LinearLayout>
colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="blue">#0303ff</color> <color name="grey">#f7f7f7</color> <color name="verde">#C0E814</color> <color name="laranja">#D0640D</color> <color name="preto">#000000</color> <color name="branco">#FFFFFF</color> <color name="vermelho">#FF0000</color> <color name="amarelo">#EAEF92</color> </resources>
Hello3.java
package br.empresa; import android.app.ListActivity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class Hello3 extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { setContentView(R.layout.main); String[] litens = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9", "Item 10"}; ItemsAdapter adapter = new ItemsAdapter(this, litens); setListAdapter(adapter); }catch (Exception e) { trace("Erro : " + e.getMessage()); } } public void toast (String msg) { Toast.makeText (getApplicationContext(), msg, Toast.LENGTH_SHORT).show (); } private void trace (String msg) { toast (msg); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub trace("Item selecionado : " + position); super.onListItemClick(l, v, position, id); } private class ItemsAdapter extends BaseAdapter { String[] items; public ItemsAdapter(Context context, String[] items) { //super(context, textViewResourceId, items); this.items = items; } public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; try { if (v == null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.list3, null); } TextView post = (TextView)v.findViewById(R.id.post); post.setText(items[position]); }catch (Exception e) { trace("Erro : " + e.getMessage()); } return v; } public int getCount() { return items.length; } public Object getItem(int position) { return items[position]; } public long getItemId(int position) { return position; } } }
Para mudar as cores de seleção da ListView basta inseri-las no arquivo colors.xml e depois chamá-las nos arquivos text_bg ou list_bg de acordo com sua necessidade.
Não postei os demais arquivos como manifest, por exemplo, pois não achei necessário se alguém achar importante é só avisar.
Desenvolvi o jogo Circus Puzzle Free ele é um quebra-cabeça e está publicado no Android Market, agradeço a todos que baixarem, jogarem e comentarem.
Desenv com qualidade!
2 comentários:
seu codigo está cheio de erros. os xml estão dando erro em todos. nada funcionou aqui
Anônimo,
Obrigado, realmente tinha vários erros, não conferi direito na hora de colar o fonte.
Agora está ok!
:)
Postar um comentário