2011-04-06 26 views
8

Soldaki bir resim, o resmin sağında bir başlık ve bunun altındaki bir açıklama ile liste görünümü oluşturmam gerekiyor. Dokümanlardaki liste görünümünü kontrol ettim ancak bunun bir örneğini göremiyorum. İlk sekme içeriği olarak liste görünümünde XML'de tanımlanmış bir sekme görünümüm var (android örneği sekmeler1'e göre). Ancak, içeriği RSS haber beslemesi yoluyla koddaki liste görünümüne eklemek istiyorum.Liste görünümü ile başlık, görüntü ve metin?

Bir html enjeksiyon dizesi kullanarak bir web görünümü kullanmayı düşünüyordum, ancak çekilebilir klasörden görüntüleri nasıl eklerim. Bir Nooby soru biraz ise

Maalesef (bu görüntüler sadece bir "haber simgesi" yerel olarak depolanmış değil internetten bir görüntü vardır), ancak herhangi bir yardım takdir :)

cevap

10

Ben yapı olduğunu varsayalım Tanımlıyorsunuz ListView öğelerinin içeriğine başvurur. Bireysel öğe için bir düzen tanımlayarak bunu başarabilirsiniz. Aşağıda benzer bir durumda benim için çalıştı kodu:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:padding="6dip" android:layout_height="?android:attr/listPreferredItemHeight"> 
    <ImageView 
     android:id="@+id/result_icon"   
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentBottom="true" 
     android:layout_marginRight="6dip"   
     android:src="@drawable/image1"/> 
    <TextView 
     android:id="@+id/result_name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   
     android:layout_toRightOf="@id/result_icon" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true"   
     android:layout_alignWithParentIfMissing="true"     
     android:gravity="center_vertical" 
     android:text="Title" /> 
    <TextView 
     android:id="@+id/result_second_line" 
     android:layout_width="fill_parent" 
     android:layout_height="26dip"  
     android:layout_toRightOf="@id/result_icon" 
     android:layout_below="@id/result_name" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true"   
     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:text="Second line" /> 
</RelativeLayout> 

Ardından ListActivity ile kullanmak için bir BaseAdapter uzatmak gerekir. Düzeni şişirmeniz ve RSS beslemesinden gelen verilerle doldurmanız gerekir.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    Result result = this.results.get(position); 


    LayoutInflater inflater = (LayoutInflater) context.getSystemService(
             Context.LAYOUT_INFLATER_SERVICE); 
    RelativeLayout view = (RelativeLayout) 
      inflater.inflate(R.layout.result_item, null, false); 

    ImageView image = (ImageView) view.findViewById(R.id.result_icon); 
    image.setImageResource(result.imageResource); 

    TextView name = (TextView) view.findViewById(R.id.result_name); 
    name.setText(result.location); 

    TextView secondLine = (TextView) view.findViewById(R.id.result_second_line); 
    secondLine.setText(result.shortDescription); 

    return view; 
} 
+0

sayesinde bu ben RelativeLayout dosya muhtemelen proje/res/düzeninde result_item.xml olarak kaydedilmiş dikkat etmelidir –

+1

yardımcı oldu / –

0
<?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="match_parent" 
    android:orientation="vertical" > 





    <GridLayout 
     android:id="@+id/gridLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1.07" 
     android:columnCount="2" > 

     <ImageView 
      android:id="@+id/chkItemImage" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_column="0" 
      android:layout_gravity="left" 
      android:layout_row="0" 
      android:layout_rowSpan="3" 
      android:src="@drawable/ic_launcher" 
      android:scaleType="fitXY" /> 

     <TextView 
      android:id="@+id/chkItemName" 
      android:layout_column="1" 
      android:layout_gravity="left" 
      android:layout_row="0" 
      android:text="" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/chkItemDescription" 
      android:layout_column="1" 
      android:layout_gravity="left" 
      android:layout_row="1" 
      android:text="" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/chkItemPrice" 
      android:layout_column="1" 
      android:layout_gravity="left" 
      android:layout_row="2" 
      android:text="" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 


    </GridLayout> 

0

Sen TextView ve ImageView içerecek şekilde liste görünümü öğeleri tasarlamak gerekir çok güzel bir düzen için buraya bu sayfayı inceleyin olabilir.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal" > 

<ImageView 
android:id="@+id/imageView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" /> 

<TextView 
android:id="@+id/textView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginLeft="40dp" 
android:layout_gravity="center_vertical" 
android:text="TextView" /> 
<TextView 
android:id="@+id/textView2" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginLeft="40dp" 
android:layout_gravity="center_vertical" 
android:text="TextView" /> 

</LinearLayout> 

Sonra listview düzenini tasarlamak gerekir. Ardından, düzen öğelerini alarak satır öğesi düzeninizi şişirmeniz gerekir.

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View single_row = inflater.inflate(R.layout.list_row, null, 
true); 
İlgili konular