2013-12-09 3 views
0

У меня есть список, который показывает график. Я хочу добавить изображение в каждую строку. Как я смогу это сделать?Добавление изображения в ListView?

Это XML-я использую:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <ListView 
     android:id="@+id/list" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</RelativeLayout> 

Это адаптер:

ListView list = (ListView) v.findViewById(R.id.list); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, times); 
list.setAdapter(adapter); 
+1

использовать пользовательский адаптер. http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/ – Raghunandan

+0

Ничего себе, это огромный шаг вперед. – Nfear

+0

В адаптерах getView-method вы можете легко заполнить элементы изображениями. Просто надуйте xml-файл, который содержит представления и помещает изображения в imageView-объект. Надуть с помощью LayoutInflater –

ответ

0

Здесь я заселена ListView с одной ImageView и три TextView используя ниже файл макета. здесь, когда у нас есть listview с изображениями, мы загружаем изображение один за другим асинхронно в android.Then создаем растровое изображение из url и устанавливаем его в imageview .so, когда вы работаете с изображением, сначала читайте данные из url byte by byte, а изображение имеет больше укусов этот текст, поэтому потребуется время для загрузки в listview.

<ImageView 
    android:id="@+id/image" 
    android:layout_width="80dp" 
    android:layout_height="80dp" 
    android:layout_centerVertical="true" 
    android:layout_margin="5dp" 
    android:background="#444" 
    android:padding="3dp" /> 

<TextView 
    android:id="@+id/tvtitle" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dip" 
    android:layout_toLeftOf="@+id/tvdate" 
    android:layout_toRightOf="@+id/image" 
    android:maxLines="1" 
    android:text="title" 
    android:textColor="@android:color/black" 
    android:textSize="15dip" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/tvdesc" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tvtitle" 
    android:layout_toRightOf="@+id/image" 
    android:ellipsize="end" 
    android:maxLines="3" 
    android:text="desc" 
    android:textColor="@android:color/black" 
    android:textSize="13dip" /> 

<TextView 
    android:id="@+id/tvdate" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="5dp" 
    android:layout_marginTop="5dip" 
    android:text="date" 
    android:textColor="@android:color/black" 
    android:textSize="12dip" /> 

здесь мы имеем ряд и есть три TextView и imageview.so в классе адаптера мы раздувать эту строку в GetView() метод.

Макет надувной плавкой = (Макетная вспышка) активность .getSystemService (Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate (R.layout.row, null);

Теперь мы используем Viewholder для добавления строки в listview для плавного просмотра в Android.

общественный статический класс ViewHolder { public TextView tvTitle, tvDesc, tvDate; частный ImageView imgView; }

Теперь создайте новый объект ViewHolder для каждой строки, а view - null. В противном случае установите его как тег, используя setTag (ViewHolder).

Видоискатель; if (view == null) { владелец = новый ViewHolder(); view.setTag (держатель); } else { holder = (ViewHolder) view.getTag(); }

теперь с использованием объекта viewHolder вы можете переопределить свой вид из row.xml.

holder.tvTitle = (TextView) view.findViewById (R.id.tvtitle); holder.tvDesc = (TextView) view.findViewById (R.id.tvdesc); holder.tvDate = (TextView) view.findViewById (R.id.tvdate); holder.imgView = (ImageView) view.findViewById (R.id.image);

мы можем установить здесь значение каждого вида строки.

holder.tvTitle.setText ("title"); holder.tvDesc.setText ("title"); holder.tvDate.setText ("title"); holder.imgView.setImageResource (R.drawable.icon);

then return statement метода getView является представлением. вид возврата;

Для Мор информации Вы можете обратиться по этой ссылке:

http://samir-mangroliya.blogspot.in/p/android-image-listview.html

Смежные вопросы