Я тестирую функцию ImageView
, когда я сталкиваюсь с вопросами. У меня есть изображение, которое составляет 1000 * 562. Мое устройство для тестирования - это Samsung I9103, размер экрана которого составляет 480 * 800. Мой дизайн проекта довольно прост, всего лишь ImageView
.Почему ширина и высота изображения меньше ширины и высоты?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/test1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/pic_1000_562"/>
</RelativeLayout>
Я использую следующий код, чтобы получить вытяжку и ImageView
размера
public void onWindowFocusChanged(boolean hasFocus){
ImageView imageView=(ImageView)findViewById(R.id.test1);
Log.v("Testresult","width= "+imageView.getWidth()+" height= "
+imageView.getHeight());
Log.v("Testresult","drawawidth= "+imageView.getDrawable().getBounds().width()+
" drawableheight= "
+imageView.getDrawable().getBounds().height());
}
Но я получаю
11-17 17:48:46.865: V/Testresult(15225): width= 480 height= 690
11-17 17:48:46.865: V/Testresult(15225): drawawidth= 1000 drawableheight= 562
Мой вопрос, почему drawabldwidth 1000 не 480, как изображение должен быть масштабирован, чтобы соответствовать экрану?
Как можно видеть, что ширина изображения соответствует родителя (480), и высота также масштабируется примерно до (269,76), сохраняя исходное соотношение. Тогда как я могу получить масштабный размер изображения (480 * 269,76)? – juejiang
Я думаю, вы можете проверить, будет ли он масштабироваться горизонтально или вертикально (какой масштаб меньше), а затем получить другой. – Szymon
См. Мое редактирование для подробного объяснения. – Szymon