Интерфейс, диалоги, темы, стили, меню
-
Lighter
- Сообщения: 61
- Зарегистрирован: 13 авг 2013, 16:39
Сообщение
Lighter » 08 май 2014, 17:23
У меня в разметке есть ImageView с картинкой из drawable. В каждой директории Drawable картинка с подходящим размером, но всё равно, на некоторых экранах картинка больше, чем нужно.
Код: Выделить всё
<ImageView
android:src="@drawable/my_img"
android:id="@+id/my_img_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />
Я масштабирую картинку:
Код: Выделить всё
float scale = 0.1F;
imgView.setScaleX(scale);
imgView.setScaleY(scale);
Картинка уменьшается, но View по-прежнему занимает столько же места, сколько и до масштабирования (вокруг видимой картинки появляется свободное место). Как можно изменить размер View до размеров отображаемой картинки?
И второй вопрос: почему imgView.getWidth() и imgView.getHeight() возвращают 0?
-
Viewer
- Сообщения: 180
- Зарегистрирован: 30 апр 2014, 11:42
Сообщение
Viewer » 08 май 2014, 18:40
Вместо "wrap_content" указывайте размеры в dp которые вам нужны.
почему imgView.getWidth() и imgView.getHeight() возвращают 0?
Смотря где вы эти методы вызываете, если в процессе инициализации Activity или фрагмента, то они еще могут быть не известны, т.к. иерархия view еще не была построена.
Если вы поставите, скажем, кнопку и в onClick попробуете получить эти параметры, когда все View будут построены и отображены на экране, то вы получите реальные размеры.