【问题标题】:Android ImageView Fixing Image SizeAndroid ImageView 修复图像大小
【发布时间】:2012-08-21 06:47:09
【问题描述】:

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

我只需要确保所有图片都必须适合ImageView, 如果图像较小,则应增大尺寸,如果较大,则应减小尺寸。

非常感谢您的宝贵时间。

【问题讨论】:

  • 贴出你尝试过的代码。

标签: android imageview android-imageview


【解决方案1】:

使用dpfill_parent 修复ImageView 的大小,并将android:scaleType 设置为fitXY

【讨论】:

    【解决方案2】:

    在你的情况下,你需要

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

    下面是一个例子:

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

    有关 ImageView scaleType 的更多信息,请参阅the developer website

    【讨论】:

    • 为什么是fitXY?为什么不使用 minHeightminWidth 而不是 layout_x ?
    • 我的所有东西都适合 XML 布局,即使替换的大小相同,setImageResource 也会破坏缩放。添加 scaleType="fitXY" 完美修复!
    • 对我有用的是 scaleType="fitCenter",以确保保持图像 x/y 比率。
    【解决方案3】:

    试试这个

    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"/>
    

    【讨论】:

      【解决方案4】:

      你也可以试试这个,假设你想制作一个后退图片按钮,并且你有“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"
              />
      

      【讨论】:

        【解决方案5】:

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

        <ImageView
            android:id="@+id/image"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:scaleType="fitXY"
            />
        

        【讨论】:

          【解决方案6】:

          除非您添加layout_width & layout_height 属性,否则您需要在XML 中添加android:scaleType 并设置fitXY
          示例
          android:scaleType="fitXY"

          如果您想以编程方式添加,
          示例
          youriv.setScaleType(ImageView.ScaleType.FIT_XY);

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多