android ImageView自动缩放

时间:2013-10-24 08:08:33

标签: android

我是Android新手。我正在写一个名为MemoryPractice的例子。在我的应用中,我使用ImageView来显示图像。我希望它们能够自动缩放以适应屏幕大小。所以我使用TableLayout来填充所有ImageView。在设计器中,它会正常显示,但在运行时,当我触摸ImageView时会改变其大小而其他人会自动缩放。 我不希望ImageView的大小扩展。它必须保持其设计尺寸。

我该怎么办?

这是layout.xml

<TableLayout 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"
android:background="@color/black_overlay"
tools:context=".TableLayout" >

<TableRow
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="1dp" >

    <ImageView
        android:id="@+id/img1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img4"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img5"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img6"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />
</TableRow>

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="1dp" >

    <ImageView
        android:id="@+id/img7"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img8"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img9"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img10"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img11"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img12"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />
</TableRow>

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="1dp" >

    <ImageView
        android:id="@+id/img13"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img14"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img15"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img16"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img17"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/img18"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:contentDescription="@string/contentDescription"
        android:scaleType="fitXY"
        android:src="@drawable/image1" />
</TableRow>

2 个答案:

答案 0 :(得分:2)

我认为这会对你有所帮助:

android:scaleType="centerCrop"
android:adjustViewBounds="true"

在图片视图中尝试此操作。

答案 1 :(得分:0)

您可以在绘制图像之前获取屏幕尺寸。然后重新缩放图像,最后绘制图像。您可以根据屏幕尺寸设置图像大小。

onTouch()方法中实施屏幕尺寸捕获过程和缩放过程。供参考,请看:

How to dynamically change ImageView Height