ImageView y Listview - Android

¡¡¡Buenos días!!!

Tengo un problema con el diseño, especialmente en la orientación horizontal en android.

Cuando voy a cambiar la orientación a horizontal, parece que ImageView está en una posición fija y solo puedo ver la barra de desplazamiento en la vista de lista... Solo quiero tener un diseño en el que también se pueda desplazar la vista de imagen para poder puede ver claramente los elementos de la lista.

Aquí está mi diseño 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="fill_parent" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="fill_parent"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"
    android:layout_height="wrap_content"
    android:contentDescription="@string/app_name"
    android:src="@drawable/banner" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/imageView1"
        android:drawSelectorOnTop="true" />

</RelativeLayout>  

preguntado el 04 de julio de 12 a las 09:07

2 Respuestas

Esto es un poco complicado porque no puede poner una vista de lista dentro de una vista de desplazamiento, pero puede hacer que funcione si crea un adaptador personalizado que puede tener diferentes tipos de filas (por ejemplo, una fila con solo texto, una fila con ImageView, etc. .).

Luego, haga que su primera fila en ListView sea siempre una imagen.

Mira este pequeño tutoriales (Sección: Diseños de diferentes elementos de la lista) para aprender a hacer diferentes tipos de filas.

Respondido 04 Jul 12, 10:07

¿Puede darme un diseño xml de muestra que se adapte a mis necesidades? Junnel Gallemaso

Esto no se puede hacer en el diseño. Debe colocar su imagen dentro de la primera fila de la vista de lista usando un adaptador personalizado. - benito bertoli

Creo que usar ListView en ScrollView no es algo bueno. Si desea que la imagen también se desplace, haga lo siguiente:

1) Para Listview necesita un cliente adaptador en el que en la clase de adaptador personalizado obtenervista() método que tienes para algo como esto

 public View getView(int position, View convertView, ViewGroup parent)
    {

    LayoutInflater inflater = getLayoutInflater();
    View row;

    row = inflater.inflate(R.layout.listview_rowlayout, parent, false);

    TextView textview = (TextView) row.findViewById(R.id.tv_list);
    ImageView imageview = (ImageView) row.findViewById(R.id.iv_list);

    textview.setText(data_text[position]);
    if(position==0){
    imageview.setImageResource(R.drawable.YourimageName);
    }else{
     imageview.setVisibility(View.GONE);
    }
  return (row);

}  

donde su listview_rowlayout.xml es algo como esto

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical" >

    <ImageView
        android:id="@+id/iv_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParenttop="true"
        android:layout_marginLeft="10dp"
       />

    <TextView
        android:id="@+id/tv_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:textColor="#000000"
        android:layout_alignBottom="@+id/imageView1"
        android:text="" />


</RelativeLayout>

y su principal.xml en el que ha agregado listview debería ser algo como esto

<?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="fill_parent" >
<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:drawSelectorOnTop="true" />

</RelativeLayout>  

Respondido 04 Jul 12, 10:07

Gracias por tu comentario... y obtuve una idea de cómo resolverlo... con la ayuda del enlace que dio Benito. He creado dos diseños xml para elementos de fila en los que hay un diseño para mi vista de imagen y para mi elemento de lista. Desactivé el primer elemento para que no se pueda hacer clic en él. Gracias por la idea de todos modos... - Junnel Gallemaso

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.