Textview setCompoundDrawables no cambiar o mostrar
Tengo un ListView con un elemento de lista personalizada
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@android:id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/app_name" android:maxWidth="32dp" /> <TextView android:id="@android:id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center|left" android:paddingBottom="4dp" android:paddingTop="4dp" android:textIsSelectable="true" android:textSize="24sp" > </TextView> </LinearLayout>
Ahora Eclipse me advierte con This tag and its children can be replaced by one <TextView/> and a compound drawable
. todo funciona bien, pero odio las advertencias ahora he cambiado la vista.
- Biblioteca de diseño de Android - Problemas de relleno / margen de botón de acción flotante
- Android Color - ¿Cuánto más oscuro es primaryColorDark que primaryColor?
- Combinación de pestañas de deslizamiento con un encabezado pegajoso
- Android: ¿Cómo rastrear el origen de una InflateException?
- Reemplazar (o "Anular") cadena en el proyecto de la biblioteca de Android
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@android:id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center|left" android:paddingBottom="4dp" android:paddingTop="4dp" android:textIsSelectable="true" android:textSize="24sp" android:drawableLeft="@drawable/unstarred" > </TextView> </LinearLayout>
pero la imagen no se muestra, puede decirme lo que está mal en el diseño, este es mi adaptador
public class CategoryAdapter extends ArrayAdapter<Category> { private Context mContext; private int mLayoutResourceId; private Category mCategories[] = null; public CategoryAdapter(Context context, int layoutResourceId, Category[] data) { super(context, layoutResourceId, data); mContext = context; mCategories = data; mLayoutResourceId = layoutResourceId; } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; Holder holder = null; if(null == row) { row = LayoutInflater.from(mContext).inflate(mLayoutResourceId, parent, false); holder = new Holder(); holder.mIcon = (ImageView)row.findViewById(android.R.id.icon); holder.mTitle = (TextView)row.findViewById(android.R.id.title); row.setTag(holder); } else { holder = (Holder) row.getTag(); } // obviously only one is used at a time // First layout final Category category = mCategories[position]; holder.mTitle.setText(category.getName()); holder.mIcon .setImageResource(category.getStarred() == 1 ? R.drawable.starred : R.drawable.unstarred); // Second layout final Category category = mCategories[position]; final Drawable icon = getResources().getDrawable(category.getStarred() == 1 ? R.drawable.starred : R.drawable.unstarred); holder.mTitle.setText(category.getName()); holder.mTitle.setCompoundDrawables(icon, null, null, null); return row; } } public static class Holder { ImageView mIcon; TextView mTitle; }
el problema es: la imagen no se muestra
- ¿Cómo referenciar un control de otro durante la inflación?
- Cómo escribir TextView sobre un ImageView en una posición específica en android?
- Resaltar o subrayar seleccionado TabPageIndicator
- Cómo hacer un diseño de pantalla completa para la vista de teclado personalizado en android
- RelativeLayout y el porcentaje de altura. No se puede usar layout_below y layout_weight
- Autocompletetextview como una pista
- Android.widget.Toolbar no se puede convertir en android.support.v7.widget.Toolbar
- ¿Lista de animaciones de la transición de la visión de androide?
He cambiado setCompoundDrawables
para setCompoundDrawablesWithIntrinsicBounds
y finalmente funciona
Añadir:
icon.setBounds(0, 0, your icon width, your icon height);
antes de:
holder.mTitle.setCompoundDrawables(icon, null, null, null);
o:
holder.mTitle.setCompoundDrawablesWithIntrinsicBounds(category.getStarred() == 1 ? R.drawable.starred : R.drawable.unstarred, null, null, null);
en lugar.