50

我有一个 Android 应用程序,我有一个ImageView,我需要保持大小不变​​,我需要将各种ImageView不同大小的图像放入其中。

我只需要确保所有图像都必须适合ImageView,如果图像较小,则图像应该增加大小,如果它更大,则应该减小。

非常感谢您的时间。

4

6 回答 6

81

dp使用或修复 ImageView 的大小fill_parent并将其设置android:scaleTypefitXY.

于 2012-08-21T06:56:07.560 回答
54

在您的情况下,您需要

  1. 修复 ImageView 的大小。您需要使用dp单位,以便它在所有设备中看起来都一样。
  2. 设置android:scaleTypefitXY

下面是一个例子:

<ImageView
    android:id="@+id/photo"
    android:layout_width="200dp"
    android:layout_height="100dp"
    android:src="@drawable/iclauncher" 
    android:scaleType="fitXY"/>

有关 ImageView scaleType 的更多信息,请参阅开发者网站

于 2012-08-21T07:25:52.063 回答
17

试试这个

ImageView img
    Bitmap bmp;
    int width=100;
    int height=100;
    img=(ImageView)findViewById(R.id.imgView);
    bmp=BitmapFactory.decodeResource(getResources(),R.drawable.image);//image is your image                                                            
    bmp=Bitmap.createScaledBitmap(bmp, width,height, true);
    img.setImageBitmap(bmp);

或者 如果你想在内存中加载完整的图像大小,那么你可以使用

<ImageView
    android:id="@+id/img"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:src="@drawable/image" 
    android:scaleType="fitXY"/>
于 2012-08-21T07:00:58.530 回答
7

你也可以试试这个,假设如果你想制作一个后退图像按钮并且你有“500x500 png”并希望它适合小按钮尺寸。

使用 dp 来修复 ImageView 的大小。

将这行代码添加到您的 Imageview。

android:scaleType="fitXY"

例子:

<ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/imageView2"
        android:src="@drawable/Backicon"
        android:scaleType="fitXY"
        />
于 2015-10-10T18:07:29.933 回答
0

我有同样的问题,这对我有帮助。

<ImageView
    android:id="@+id/image"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:scaleType="fitXY"
    />
于 2021-02-11T14:26:32.333 回答
0

除非您添加&属性,否则您需要在 XML中添加android:scaleType和设置。示例: 如果您想以编程方式添加,示例fitXYlayout_widthlayout_height

android:scaleType="fitXY"



youriv.setScaleType(ImageView.ScaleType.FIT_XY);

于 2021-07-15T15:09:42.550 回答