Ширина элемента галереи и ширина галереи - PullRequest
1 голос
/ 10 января 2010

У меня есть Галерея с набором изображений, которые были загружены во время выполнения.

Я последовал примеру здесь: http://www.anddev.org/a_androidwidgetgallery_-_example-t332.html

но вместо использования

i.setImageResource(this.myImageIds[position]);

Я использовал

i.setImageBitmap(bitmaps.get(position));

Это не заполняет всю ширину экрана, а только ширину, указанную здесь:

i.setLayoutParams(new Gallery.LayoutParams(150, 150)); 

Когда я увеличиваю это число, элемент масштабируется вместе с ним, вместо того, чтобы показывать больше изображений в примере. Я даже пытался масштабировать изображения, прежде чем добавить их в набор. Не уверен, что мне не хватает, или где могут быть другие примеры этого. Любая помощь будет отличной, спасибо.

Ответы [ 2 ]

1 голос
/ 15 апреля 2011

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

public View getView (int position, View convertView, ViewGroup parent) { ImageView i = новый ImageView (this.myContext);

        i.setImageResource(this.myImageIds[position]);
        /* Image should be scaled as width/height are set. */
        i.setScaleType(ImageView.ScaleType.FIT_XY);
        /* Set the Width/Height of the ImageView. */
        int selectedPosition = ((Gallery) parent).getSelectedItemPosition();

        float scale = getScale(position - selected);

            int width = Math.round(IMAGE_WIDTH * scale);

            int height = Math.round(IMAGE_HEIGHT * scale);

            i.setLayoutParams(new Gallery.LayoutParams(width, height));

        return i;
    }
0 голосов
/ 20 октября 2010

В вашем XML-файле макета обязательно установите android: layout_width = "fill_parent", как это

<Gallery 
            android:id="@+id/gallery"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="2dip"
                        android:layout_gravity="center_horizontal|bottom"
                        android:padding="1dip"
                        android:background="#AA000000"
            />
...