Quiero el estilo de la lisview en mi aplicación como se ve en esta imagen

Aplicar Estilo a Android ListView

He tratado de desarrollar mediante la aplicación de gradiente :

código para list_item_normal es :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:centerColor="#E6E6E6"
        android:endColor="#CCCCCC"
        android:startColor="#FFFFFF" 
        android:angle="270"/>
    <!--
        <gradient
        android:startColor="#FF7500"
        android:centerColor="#FFCC00"
        android:endColor="#FF7500"
        android:angle="270"/>
    -->

    <stroke
        android:width="1dp"
        android:color="#A0000000" />

    <padding
        android:bottom="8dp"
        android:left="5dp"
        android:right="5dp"
        android:top="8dp" />

    <corners android:radius="5dp" />

</shape>

código para list_item_pressed.xml es :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">

    <gradient
        android:centerColor="#E6E6E6"
        android:endColor="#CCCCCC"
        android:startColor="#FFFFFF" android:angle="270"/>
    <!--
         <gradient android:startColor="#FF66CFE6" android:centerColor="#FF207FB9" 
        android:endColor="#FF0060B8" android:angle="270"/>
    -->

    <stroke
        android:width="2dp"
        android:color="#80000000" />

    <padding
        android:bottom="8dp"
        android:left="5dp"
        android:right="5dp"
        android:top="8dp" />

    <corners android:radius="7dp" />

</shape>

código para list_item_pressed.xml :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">

    <gradient
        android:centerColor="#E6E6E6"
        android:endColor="#CCCCCC"
        android:startColor="#FFFFFF" android:angle="270"/>
    <!--
         <gradient android:startColor="#FF66CFE6" android:centerColor="#FF207FB9" 
        android:endColor="#FF0060B8" android:angle="270"/>
    -->

    <stroke
        android:width="2dp"
        android:color="#80000000" />

    <padding
        android:bottom="8dp"
        android:left="5dp"
        android:right="5dp"
        android:top="8dp" />

    <corners android:radius="7dp" />

</shape>

y list_gradient.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
          android:drawable="@drawable/list_item_pressed" />

    <item android:state_focused="true"
          android:drawable="@drawable/list_item_selected" />

    <item android:drawable="@drawable/list_item_normal" />

</selector>

y he aplicado este estilo en custom listitem como :

<TextView
    .../>

<ImageView
   ... />

y la main.xml en la que me he lisview es :

<ListView
    android:id="@+id/List"
    style="@style/list_item_gradient"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:clickable="true" >
</ListView>

y me estoy poniendo de salida como se muestra a continuación :

Aplicar Estilo a Android ListView

Por favor me ayude diciendo lo que estoy haciendo mal..

Gracias
Shruti

  • Yo estaba tratando de ensuciar mis manos con diseños personalizados de la lista de la fila. Hice lo que era necesario, como estado presionado, el estado seleccionado, y en estado normal (como se mencionó en el desplegable de archivos). También he cambiado el layout por defecto de estilo de list_item_gradient. Estoy corriendo en coreógrafo de las advertencias de que me puede estar haciendo mucho trabajo en el hilo principal. Lo que podría ser una posible solución para esto?
  • trate de usar Async Tarea,para reducir el trabajo en el hilo principal.
  • Yo también he leído en algunos foros que es porque el estilo no tiene ningún atributo primario. Cómo definir uno?
  • No estoy seguro de si el uso de AsyncTask aquí como yo no estoy haciendo ningún relacionado con la red o cualquier otra operación pesada. ¿Tiene alguno de los enlaces que me puede solucionar este problema? Aquí está el post del blog thesoftwarerogue.blogspot.en/2010/12/…
InformationsquelleAutor Shruti | 2011-12-19

2 Comentarios

  1. 5

    Qué sabe usted acerca de Tramado? Marque esta: http://android.amberfog.com/?p=247.

    También revise estas preguntas:

    1. Cómo dibujar un suave/interpolado de gradiente sobre un lienzo en Android
    2. Android ver tramado

    Y sí, yo sugeriría para crear adaptador personalizado para su LitsView, en el que sólo tienes que crear uno personalizado fila fichero xml de diseño y aplicar la imagen de fondo de una sola vez.

    • por favor explicar un poco más..tengo que agregar listselector ??
    • i hav creado un adaptador personalizado única cosa que no es wrking para mí, es que soy incapaz de cambiar el color de los seleccionados listitem
    • creo que están hablando de que el «amarillo» de la imagen aparece al tocar un particular listitem, ¿verdad? si este es el caso, a continuación, crear selector.xml y aplicarlo.
    • sí, yo estaba hablando de que sólo .. gracias fr responder .. crea un selector y se está trabajando muy bien
    • me alegro de que mi respuesta sea de ayuda para ustedes 🙂
    • Estoy en amor con usted.. <3

  2. 1

    crear un customAdapter se extiende baseAdapter . crear list_item.xml y darle el aspecto deseado posicione el selector a su fondo .
    eso es todo .

    • he creted un adaptador personalizado el único problema que estoy teniendo es que mientras que la selección de un elemento de la lista de su color no cambia, como se muestra en la primera imagen

Dejar respuesta

Please enter your comment!
Please enter your name here