Cambio de fondo de una sola fila de gridview en android
Actualmente estoy desarrollando una aplicación para Android que necesita mostrar una estantería de libros donde contenga un máximo de 3 imágenes en cada fila. Estoy usando gridview para eso. Pero estoy atascado en un punto en el que no soy capaz de cambiar el fondo de una fila entera en gridview. ¿Puede alguien decirme cómo hacer esto?
El adaptador utilizado para gridview
- GridView con muchas imágenes da como resultado un desplazamiento lento / áspero
- Cómo obtener la posición más cercana del elemento seleccionado de gridview (o RecyclerGridview)
- Ejemplo simple de red de Android con RecyclerView con GridLayoutManager (como el GridView antiguo)
- Mantenga la posición de desplazamiento de GridView a través de la rotación de pantalla
- ¿Cómo agregar vista a gridview de forma programática, android?
private class SampleGridAdapter extends BaseAdapter{ private Context context; private int[] images = {"R.drawable.img1","R.drawable.img2","R.drawable.img3","R.drawable.img4","R.drawable.img5","R.drawable.img6","R.drawable.img7"}; public SampleGridAdapter(Context context) { super(); this.context = context; } @Override public int getCount() { // TODO Auto-generated method stub return images.length; } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int arg0, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub View v = null; ImageView coverImageView; LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = inflater.inflate(R.layout.bookgrid, null); coverImageView = (ImageView) v.findViewById(R.id.coverImageView); coverImageView.setImageResource(images[position]); coverImageView.setScaleType(ImageView.ScaleType.FIT_XY); return v; } }
Bookgrid.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/shelfimage" > <ImageView android:id="@+id/coverImageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:paddingBottom="0dp" android:paddingLeft="25dp" android:paddingTop="6dp" android:src="@drawable/ic_launcher" /> </RelativeLayout>
He fijado el número de columnas como 3 en mi declaración del gridview. Aquí estoy fijando el fondo en archivo del xml como androide: fondo = "@ drawable / shelfimage". Pero está fijando ese fondo para cada artículo por separado …… Quiero fijar una sola imagen como fondo para cada fila (que tiene 3 artículos) ….
- La vista de cuadrícula de Android se carga en orden inverso
- ¿Qué stretchMode utilizar en GridView en android
- GridView problema con el cambio de tamaño
- Android Grid View Scroll horizontalmente
- ¿Número múltiple de columnas en un único StaggeredGridView?
- Android: establece la vista de texto al hacer clic en el elemento
- ¿Cómo se puede utilizar la barra de desplazamiento horizontal de gridview en android?
- Android - ¿cómo puedo saber cuando gridview ha llegado al fondo?
Usted puede mirar este ejemplo le ayudará a usted.
La respuesta es para lo que he entendido para usted pregunta.
SI en el caso de, está utilizando algún adaptador para gridview, en la clase del adaptador y el método getView compruebe la posición y ajuste el color al diseño que está inflando. En el método getview de la clase adaptadora, el bg de la vista inflada se puede cambiar para posiciones específicas.
Si ha implementado la vista utilizando el adaptador, la lógica funciona.
Creo que la única manera de lograr esto es mediante la configuración de la imagen de fondo para gridview que se repite en la dirección vertical (o tal vez), un código de ejemplo:
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.bg_image); BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); bitmapDrawable.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT); gridView.setBackgroundDrawable(bitmapDrawable);
- Ver para salir de la izquierda y entrar desde la derecha
- Responder a llamadas de teléfono Android de PC por bluetooth