У меня есть ListView, который показывает изображения, загруженные из Интернета и иметь собственный макет для каждой строки ListView, как показано ниже:ListView не показывает изображения правильно
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#00f"
>
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/wish"
android:gravity="center_vertical|center_horizontal"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp"
android:text="" />
</LinearLayout>
Мой метод GetView является, как Belows:
public View getView(int arg0, View arg1, ViewGroup arg2)
{
// TODO Auto-generated method stub
View v;
final TextView tv;
if(arg1 == null)
{ // if it's not recycled, initialize some attributes
LayoutInflater lf = (LayoutInflater) conn.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = lf.inflate(R.layout.layitem, arg2, false);
tv = (TextView) v.findViewById(R.id.textView1);
tv.setLayoutParams(new LinearLayout.LayoutParams(width, width/2));
// tv.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
}
else
{
v = arg1;
tv = (TextView) v.findViewById(R.id.textView1);
}
if(arg0 < count)
{
Bitmap object = getImage(iurl[arg0]);
tv.setBackground(new BitmapDrawable(conn.getResources(), object));
tv.setText(texts[arg0]);
}
else
{
tv.setBackgroundResource(R.drawable.wish);
tv.setText("");
}
return v;
}
Что я пытаюсь сделать, так это то, что у моего ListView есть 20 строк, а моя запись не меньше 20. Так как записи заполняют строки, а остальные имеют фоновое изображение по умолчанию, то фактическое отсутствие записей.
iurl - это массив, содержащий имя изображений для получения с сервера, а тексты - это массив, содержащий сообщения.
Проблема заключается в том, что arg0 не выходит за пределы 2, и все строки содержат изображения, индексированные от 0 до 2, и когда я прокручиваю вниз, чтобы изменить изображение, соответствующее номеру строки.
Могу ли я поместить правильное изображение в нужную строку на первой позиции или оно будет занимать только по мере его прокрутки.
Я устанавливаю ширину текстового изображения в соответствии с шириной экрана мобильного телефона. Это правильный способ сделать. Быстро обновить.
Нет проблем с загрузкой изображения. Очевидно, что я делаю через asynctask. Изображения правильно загружаются. – user2779311