android - 如何更改 ImageView 的大小?

标签 android imageview layoutparams

我的 ImageView 设置如下:

    <ImageView android:id="@+id/dl_image"
               android:layout_width="60dp"
               android:background="@drawable/pictureframe"
               android:layout_height="wrap_content"
               android:layout_marginRight="10dp"
               android:layout_alignParentLeft="true"
               android:layout_centerVertical="true"
               android:adjustViewBounds="true"
               android:scaleType="fitCenter"/>

请注意,layout_width 固定为 60dp。根据我在线获取的内容,我想将此宽度调整为 90dp 或 120dp(同时保持图像的纵横比)。

我尝试使用 setLayoutParams,但传递 LayoutParams(120, LayoutParams.WRAP_CONTENT) 会引发异常。它似乎不喜欢它。

如果可能,我会尽量避免为更大尺寸制作另一个 ImageView。

最佳答案

如果您正在使用现有 View ,则从头开始创建一组新的 LayoutParams 可能需要大量工作。相反 - 您可以获取 View 的现有 LayoutParams,对其进行编辑,然后将它们应用到 View 以使用 setLayoutParams()

更新其 LayoutParams
ImageView imageView = findViewById(R.id.dl_image);
LayoutParams params = (LayoutParams) imageView.getLayoutParams();
params.width = 120;
// existing height is ok as is, no need to edit it
imageView.setLayoutParams(params);

确保导入正确类型的 LayoutParams。对于这种情况,正如您评论的那样,您可以只使用 ViewGroupLayoutParams。如果您要设置特定于某种 View 类型的参数(例如,RelativeLayouts 中的对齐方式),则必须导入该类型 View 的 LayoutParams

关于android - 如何更改 ImageView 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8453004/

相关文章:

android - 从 phonegap android 应用程序调用本地 .asmx web 服务以获取数据?

java - 带背景图片的抽屉导航

安卓媒体播放器 : prepared video takes 250ms to start playing

android - 不是 DRM 文件,正常打开

android - 是否可以通过 STREAM_ALARM 播放 YouTubePlayer

android - 在不使用 setAlpha 的情况下在 ImageView 上设置 alpha

javafx 图像颜色变化

android - Seekbar 未设置 .getLayoutParams().height

android - 适用于 Android 的自动调整 TextView

android - 如何设置ImageView的LayoutParams