2015-07-23 2 views
3

У меня есть ListView, который содержит изображения (каждая строка), ширина каждого изображения соответствует match_parent и высота составляет около 0,4 от ширины.ImageView черный фон на некоторых устройствах

Теперь все работает отлично, за исключением устройств с большими экранами (например, Nexus 7 ...), вместо того, чтобы изображения, которые я вижу черный фон

Вот мой ListView адаптер

public class Adapter extends ArrayAdapter<String>{ 
    int width = 0; 

    private final Activity context; 
    private final String[] title; 
    private final int[] img; 

    public PlansAdapter(Activity context, 
         String[] title, int[] img) { 
     super(context, R.layout.listsingle, title); 
     this.context = context; 
     this.title = title; 
     this.img = img; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = context.getLayoutInflater(); 
     convertView = inflater.inflate(R.layout.listsingle, null, true); 
     TextView Title = (TextView) convertView.findViewById(R.id.text); 
     Title.setText(title[position]); 
     ImageView Img = (ImageView) convertView.findViewById(R.id.img); 
     Img.setImageResource(img[position]); 
     width = ((Activity) getContext()).getWindowManager().getDefaultDisplay().getWidth(); 
     double a = (double) 44/96; 

     Img.getLayoutParams().height = (int) (a*width); 

     RelativeLayout bghover = (RelativeLayout)convertView.findViewById(R.id.bghover); 
     bghover.getLayoutParams().height = (int) (a*width); 


     return convertView; 
    } 
} 

В следующем Я использую тот же код, и я вижу изображение.

width = getWindowManager().getDefaultDisplay().getWidth(); 
double a = (double) 44/96; 
Img.getLayoutParams().height = (int) (a*width); 

Я думаю, что память устройства не является достаточно большой, чтобы показать все изображения

Вот LogCat

eglSurfaceAttrib не реализован

Отбрасывания события из-за отсутствие окна фокусировки : KeyEvent {action = ACTION_DOWN, keyCode = KEYCODE_ALT_RIGHT, scanCode = 100, metaState = META_ALT_ON | META_ALT_RIGHT_ON, flags = 0x8, repeatCount = 497,eventTime = 242910, простои = 216396, DeviceId = 1, источник = 0x301}

капают событие из-за отсутствия окна фокусировки: KeyEvent {действие = ACTION_DOWN, KEYCODE = KEYCODE_ALT_RIGHT, скан = 100, metaState = META_ALT_ON | META_ALT_RIGHT_ON , флаги = 0x8, RepeatCount = 498, eventTime = 242960, простои = 216396, DeviceId = 1, источник = 0x301}

GC_FOR_ALLOC освободил 1461K, 8% бесплатно 18275K/19844K, приостановлена ​​6 мс, общая 6ms

+0

Попробуйте изменить эту строку 'convertView = inflater.inflate (R.layout.listsingle, null, true);' to' convertView = inflater.inflate (R.layout.listsingle, parent, false); ' –

+0

@AnggrayudiH вещь, все еще черный фон – Hadi

ответ

0

Я думаю, что на устройстве заканчивается память или что-то в этом роде. Я сделал фотографии для загрузки в фоновом режиме, и теперь все работает нормально.

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