Android: Галерея, вмешивающаяся в настройку масштаба ImageView - PullRequest
0 голосов
/ 10 декабря 2010

У меня есть некоторые изображения, которые имеют высоту 48 пикселей (или больше) и ширину 48 пикселей (или больше). Таким образом, в основном у меня есть изображения, которые 48 или больше 48, или больше 48 х 48. Я хочу сделать несколько миниатюр из этих изображений, которые обрезаются по центру и НЕ масштабируются, чтобы они сохраняли качество изображения. Я не могу использовать:

setScaleType(ScaleType.CENTER_CROP)

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

Я попытался ScaleType.CENTER в XML-макете, и, похоже, это именно то, что я хочу. Я использую эти изображения в Галерее, поэтому в своей галерее Адаптер я делаю:

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

        ImageView thumb = new ImageView(mContext);
        thumb.setScaleType(ScaleType.CENTER);
        thumb.setLayoutParams(new LayoutParams(THUMB_SIZE, THUMB_SIZE));

        if (mPhotos != null) {
            String imageUrl = mPhotos.get(position).getPhotoHref();
            imageUrl = imageUrl.replaceAll(mPattern, mFormat);
            ImageManager.instance().displayImage(imageUrl, mContext, thumb, DefaultThumbId);
        } else {
            thumb.setImageResource(DefaultThumbId);
        }

        return thumb;
    }

но по какой-то причине все изображение показано, но уменьшено. Он отлично работает в макете XML, но не тогда, когда я делаю это в коде и передаю его Gallery. Что дает?

1 Ответ

0 голосов
/ 14 декабря 2010

Это на самом деле не было проблемой галереи, загружаемые мною изображения не масштабировались должным образом, поэтому они имели максимальную ширину / высоту, равную размеру вида, а не минимальной ширине / высоте добиться того, что я хотел здесь. Теперь я загружаю файл нужного размера и setScaleType (ScaleType.CENTER_CROP) работает правильно.

...