Ширина изображения

#android #kotlin

#Android #котлин

Вопрос:

Я пытаюсь переместить кнопку внутри a ImageView . Мне нужно найти ширину a ImageView , и я использую.

         ImgBox.getLocationOnScreen(location)
        val x = location[0]
        val y = location[1] 
        val viewWidth = ImgBox.width
 

Ширина, которую я получаю, неверна, и я думаю, что это из-за ограничений в ImageView

     <ImageView
        android:id="@ id/..."
        style="@style/..."
        android:background="@..."
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHeight_percent="0.4"
        app:layout_constraintHorizontal_bias="0.6"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.5"
        app:layout_constraintWidth_percent="0.1"
 

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

Комментарии:

1. Сработал ли для вас мой ответ?

Ответ №1:

Похоже, вы написали «ImgBox» как «OmgBox» здесь:

 val viewWidth = OmgBox.width
 

Попробуйте изменить его на:

 val viewWidth = ImgBox.width
 

Редактировать:

Итак, вышеприведенное не сработало для вас, поэтому я протестировал этот пример, и он работает для меня. Вот что я сделал.

Добавьте этот импорт в начало своей деятельности: import android.widget.ImageView

Затем добавьте этот код:

 val imageView = findViewById<ImageView>(R.id.yourImageViewId)
val width = imageView.width.toString()
Toast.makeText(applicationContext, width, Toast.LENGTH_SHORT).show()
 

Измените yourImageViewId свой идентификатор imageview, установленный здесь:

  <ImageView
    android:id="@ id/..."
    .....
 

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

Комментарии:

1. Привет, Эми, это была ошибка, которую я допустил только здесь. Так что это не сработало

2. Хорошо, я немного запутался в том, на чем вы застряли. Не могли бы вы объяснить?

3. Если бы я хотел добавить ваш код в свой фрагмент, я предполагаю, что это будет то же самое. Когда я добавляю его в свой фрагмент, я получаю «Неразрешенную ссылку: findViewById».