图像视图不包装内容

时间:2014-01-18 11:01:51

标签: java android imageview

我有一个ImageView包裹this image

<ImageView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:scaleType="fitStart"
    android:src="@drawable/oncmap"/>

正下方是TextView。不幸的是,它要么根据设备的屏幕尺寸将其推向视图或从视图中移出。

http://i.imgur.com/CuVFK5P.png

http://i.imgur.com/6wzMebV.jpg

我可以“破解”它,但它不是......

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="16dp"
android:orientation="vertical"
tools:context="MapFragment">

<ImageView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/oncmap"/>

<TextView
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:text="Neptune"
    style="@style/sectionHeader"/>

<TextView
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"
    android:paddingTop="16dp"
    android:text="@string/info"
    style="@style/text"/>

3 个答案:

答案 0 :(得分:193)

将以下字段添加到ImageView:

android:scaleType="fitXY"
android:adjustViewBounds="true"

答案 1 :(得分:0)

如果您尝试添加大尺寸图像,例如说4到6 mb,并且您正在使用drawable,则将得到类似-> java.lang.RuntimeException的错误:Canvas:尝试绘制太大(537528960bytes)位图

对于Java,您可以在android studio中执行此操作,但是对于其他人也是如此,执行此操作可在后台将图像插入应用程序中,适用于大尺寸和小尺寸图像。

将图像(高分辨率)中的图像基本移动到drawable-xxhdpi ,可通过进入app-> res-> mipmap来找到。

<ImageView
        android:id="@+id/imageView2"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/imagename" />

答案 2 :(得分:-1)

要在 Imageview 中显示原始图像大小,请写下以下内容。 android:layout_height="wrap_content"android:adjustViewBounds="true" 完成这项工作。无需设置 ScaleType。

<ImageView
     android:id="@+id/iv_QuestionImage"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_margin="10dp"
     android:adjustViewBounds="true"
     android:src="@drawable/ic_app_icon_512"
     android:visibility="gone"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toTopOf="parent" />