android - tamaño - Cómo cambiar el color y la fuente en ListView
cambiar tamaño de letra listview android (9)
Crea un CustomAdapter y en él tienes el getView () así que si quieres cambiar el color de fondo de la vista de lista usa esto:
v.setBackgroundColor(Color.CYAN);
Si desea cambiar el textColor, haga esto:
tv.setTextColor(Color.RED);
y para el tamaño del texto:
tv.setTextSize(20);
donde ''v'' es la vista de lista y ''tv'' es la vista de texto
Estoy tratando de cambiar mi fuente (color y tamaño) y la parte trasera de mi ListView. Quiero cambiarlo con líneas de código no en xml. mi vista de lista se ve así: el xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="18sp" android:text="@string/hello">
</TextView>
y mi código es
public class NewsActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ArrayAdapter listItemAdapter = new ArrayAdapter( this,android.R.layout.simple_list_item_1, v_itemList );
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item,ynetList));
View v=getListView() ;
ListView lv = getListView();
¿qué sigue? por favor dame una base de ejemplo en mi código
Puede seleccionar un niño como
TextView tv = (TextView)lv.getChildAt(0);
tv.setTextColor(Color.RED);
tv.setTextSize(12);
Si desea establecer el fondo de la lista, coloque la imagen antes de la <Textview>
< ImageView
android:background="@drawable/image_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
y si desea cambiar el color, coloque el código de color en el cuadro de texto de arriba como este
android:textColor="#ffffff"
utilícelos en código Java como este:
color = getResources().getColor(R.color.mycolor);
El método getResources()
devuelve la clase ResourceManager para la actividad actual, y getColor()
le pide al administrador que busque un color dado un ID de recurso
Si solo necesita cambiar algunos parámetros de la Vista y el comportamiento predeterminado de ArrayAdapter, está bien para usted:
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
public class CustomArrayAdapter<T> extends ArrayAdapter<T> {
public CustomArrayAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
// Here all your customization on the View
view.setBackgroundColor(.......);
...
return view;
}
}
Aún mejor, no es necesario crear un diseño xml de Android separado para la vista de celda de la lista. Solo puede usar "android.R.layout.simple_list_item_1" si la lista solo contiene textview.
private class ExampleAdapter extends ArrayAdapter<String>{
public ExampleAdapter(Context context, int textViewResourceId, String[] objects) {
super(context, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView tv = (TextView) view.findViewById(android.R.id.text1);
tv.setTextColor(0);
return view;
}
Si quieres usar un color de colors.xml , experimenta:
public View getView(int position, View convertView, ViewGroup parent) {
...
View rowView = inflater.inflate(this.rowLayoutID, parent, false);
rowView.setBackgroundColor(rowView.getResources().getColor(R.color.my_bg_color));
TextView title = (TextView) rowView.findViewById(R.id.txtRowTitle);
title.setTextColor(
rowView.getResources().getColor(R.color.my_title_color));
...
}
Puedes usar también:
private static final int bgColor = 0xAAAAFFFF;
public View getView(int position, View convertView, ViewGroup parent) {
...
View rowView = inflater.inflate(this.rowLayoutID, parent, false);
rowView.setBackgroundColor(bgColor);
...
}
Necesita crear un CustomListAdapter.
public class CustomListAdapter extends ArrayAdapter <String> {
private Context mContext;
private int id;
private List <String>items ;
public CustomListAdapter(Context context, int textViewResourceId , List<String> list )
{
super(context, textViewResourceId, list);
mContext = context;
id = textViewResourceId;
items = list ;
}
@Override
public View getView(int position, View v, ViewGroup parent)
{
View mView = v ;
if(mView == null){
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mView = vi.inflate(id, null);
}
TextView text = (TextView) mView.findViewById(R.id.textView);
if(items.get(position) != null )
{
text.setTextColor(Color.WHITE);
text.setText(items.get(position));
text.setBackgroundColor(Color.RED);
int color = Color.argb( 200, 255, 64, 64 );
text.setBackgroundColor( color );
}
return mView;
}
}
El elemento de la lista se ve así (custom_list.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:textSize="20px" android:paddingTop="10dip" android:paddingBottom="10dip"/>
</LinearLayout>
Use las API de TextView para decorar su texto a su gusto
y lo usarás así
listAdapter = new CustomListAdapter(YourActivity.this , R.layout.custom_list , mList);
mListView.setAdapter(listAdapter);
en Android 6.0 puedes cambiar el color del texto como a continuación
holder._linear_text_active_release_pass.setBackgroundColor(ContextCompat.getColor(context, R.color.green));