2016-02-14 4 views
0

Я пытаюсь изучить развитие Android от Udacity.GridView не подходит для экрана

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

Желаемый результат должен быть чем-то вроде этого.

output required

выход, который я получаю.

output I am getting

Мой XML-файл

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/gridView" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:numColumns="2" 
android:gravity="center" 
android:stretchMode="columnWidth" 
/> 

Мой метод GetView из класса адаптера, который проходит BaseAdapter.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    ImageView iImageView; 

    if(convertView == null){ 
     iImageView = new ImageView(mContext); 
    }else { 
     iImageView = (ImageView) convertView; 
    } 

    Picasso.with(mContext) 
      .load(imageResource[0]) 
      .into(iImageView); 

    iImageView.setLayoutParams(new GridView 
      .LayoutParams(GridView.LayoutParams.WRAP_CONTENT 
      , GridView.LayoutParams.WRAP_CONTENT)); 

    Log.v("data", "Height:" + Integer.toString(iImageView.getHeight())); 
    Log.v("data", "Width:" + Integer.toString(iImageView.getWidth())); 

    return iImageView; 
} 

Проблема, что я столкнулся в том, что существует пробел между каждой колонкой и между границами экрана. Я не хочу этого. Я хочу, чтобы он был похож на меня.

Пожалуйста, помогите. Благодарю.

+0

Я попытался запустить этот код на эмуляторе nexus 4 с api 22. И размер изображения составляет 185 x 277 пикселей. –

ответ

0

Вместо использования нового ImageView для создания ImageView без заданных свойств попробуйте раздуть макет, содержащий ImageView, а также свойства для этого ImageView, что имеет смысл. Например, вы, вероятно, захотите установить android:scaleType на «centerCrop». В настоящее время похоже, что изображения уменьшаются, чтобы соответствовать пространству, данным GridView, потому что это не идеально подходит.

Вы также можете вызвать методы на вашем ImageView, чтобы установить различные свойства, но я думаю, для вас может быть лучше выразить его в XML-макете.

+0

Я не создавал xml-файл для 'ImageView'. Но я задал тип шкалы 'centerCrop' методом, и это сработало для меня. И я также изменил ширину и высоту «ImageView» на «MATCH_PARENT» с «WRAP_CONTENT». –

0

Попробуйте использовать индивидуальный макет с простым линейным или относительным. Установите цвет фона для этого макета конца. Какой-то цвет фона поможет так много

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