У меня есть некоторые изображения, которые имеют высоту 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
. Что дает?