Проблема с галереей Android - размер галереи больше ожидаемого - PullRequest
4 голосов
/ 11 мая 2011

У меня есть виджет «Активность с галереей» наряду с другими представлениями.Я хочу, чтобы галерея была такой же широкой, как моя активность, и я хочу, чтобы мое изображение соответствовало размеру галереи.Я немного запутался с ImageView.ScaleType , но вот что я выбрал:

Часть моего адаптера curtom для галереи:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView=new ImageView(activity);
    imageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    //imageView.setPadding(10, 10, 10, 10);
    String imageUrl="my_uri.com/sample.png";

    imageLoader.displayImage(imageUrl, activity, imageView);

    imageView.setTag(imageUrl);

return imageView;
}

Частьмоего макета деятельности:

 <Gallery 
       android:id="@+id/gallery"
       android:layout_below="@+id/tvDetailedDescription"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:background="#CCCCCC"
     />

enter image description here

Что мне нужно, это избавиться от этой дополнительной серой части галереи сверху и снизу (отмечена красным).Интересно, почему у него такой размер?Может быть, я делаю что-то смешное с этим типом масштабирования?

Ответы [ 3 ]

1 голос
/ 11 мая 2011

Попробуйте вместо этого использовать ScaleType.CENTER_CROP - это приведет к тому, что изображение уместится на полную высоту, сохранив соотношение сторон - т.е. некоторые изображения слева и справа не будут видны.

В качестве альтернативы вы можете использоватьScaleType.FIT_XY - это не будет поддерживать соотношение сторон и будет растягивать изображение, чтобы все изображение помещалось в ImageView.

0 голосов
/ 25 мая 2011

android: layout_weight = "1" для gridview или родителя.Вы должны использовать инструменты «просмотр иерархии», чтобы лучше понять, какой макет должен иметь приоритет дизайна, чтобы понять, какой макет не заполняет собственного родителя.

Я надеюсь, что он поможет вам.

0 голосов
/ 19 мая 2011

Попробуйте изменить параметры макета вида изображения (также установите высоту на fill_parent) -

Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...