Использование библиотеки Glide для загрузки изображения на весь экран

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

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"   >

    <ImageView
        android:adjustViewBounds="true"
        android:id="@+id/backgroundImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

  <include layout="@layout/signup_layout"/>

</RelativeLayout> 

Мой код для активности, в которой я использую библиотеку Glide,

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_loginscreen);

    // Setup the email field
    mEmailView = (AutoCompleteTextView) findViewById(R.id.email);

    // Setup password field
    mPasswordView = (EditText) findViewById(R.id.password);
ImageView imageView = (ImageView) findViewById(R.id.backgroundImage);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Glide.with(this)
        .load(R.drawable.green_field)
        .override(width,height)
        .centerCrop()
        .into(imageView);

После запуска кода изображение имеет белые пятна слева и справа от экрана, но оно заполняет всю высоту изображения. Я пытался использовать как .fitCenter(), так и .centerCrop() вместе, но изображение стало пиксельным.


person George    schedule 25.04.2016    source источник


Ответы (1)


Он не может заполнить весь экран, так как вы использовали

android:adjustViewBounds="true"

какие заказы (документы):

Установите для этого параметра значение true, если вы хотите, чтобы ImageView корректировал свои границы, чтобы сохранить соотношение сторон своего объекта рисования.

Также это глючит на pre API17, как предупреждают вышеприведенные документы.

Если вы хотите заполнить весь экран, вы должны удалить android:adjustViewBounds и, возможно, рассмотреть возможность использования

android:scaleType="fitCenter"
person Marcin Orlowski    schedule 25.04.2016
comment
вы должно быть пьяны, здесь нет centerFit scaleType - person HendraWD; 30.05.2018
comment
Это сработало отлично, с высотой, установленной для переноса содержимого, и шириной, соответствующей родительскому элементу, мои изображения идеально вписываются в ширину и динамическую высоту. - person Ajith Memana; 14.05.2020