Изображение не полностью покрывает вид изображения - PullRequest
1 голос
/ 17 декабря 2010

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

вот мой код просмотра изображения:

    android:id="@+id/imageViewVessel"
    android:layout_width="fill_parent"
    android:scaleType="fitStart"
    android:layout_height="170dip"
    android:src="@drawable/vessel"

РЕДАКТИРОВАТЬ kcoppock: Добавление кода из комментария devaditya ниже

TableRow rowImage = new TableRow(this); 
rowImage.setBackgroundColor(Color.GRAY); 
rowImage.setMinimumHeight(150); 
rowImage.setGravity(Gravity.CENTER); 
rowImage.setMinimumWidth(LayoutParams.FILL_PARENT); 
ImageView imgViewVessel=new ImageView(this); 
imgViewVessel.setImageResource(R.drawable.vessel); 
imgViewVessel.setMinimumHeight(150); 
imgViewVessel.setMinimumWidth(LayoutParams.FILL_PARENT); 
imgViewVessel.setScaleType(ScaleType.FIT_XY); 
rowImage.addView(imgViewVessel);   

Ответы [ 2 ]

7 голосов
/ 17 декабря 2010

Чтобы расширить ответ Гао, вам нужно установить scaleType для вашего ImageView, но маловероятно, что fitXY - это тип scaleType, который вы ищете. Вы можете найти полный список по ссылке выше, но некоторые из наиболее распространенных:

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

  • centerInside: при этом также сохраняется соотношение сторон, но изображение масштабируется так, чтобы полностью вписываться в вид, поэтому самый длинный край имеет такой же размер, что и кадр. Это может дать вам эффект типа «почтовый ящик», если пропорции кадра и исходного изображения отличаются. fitStart и fitEnd - это один и тот же метод масштабирования, но они по-разному размещают изображение (слева вверху и справа внизу).

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

1 голос
/ 17 декабря 2010

Вы можете установить тип масштаба в файле макета: android: scaleType = "fitXY" или вызвать setScaleType с помощью fitXY.

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