我的 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()
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
。对于这种情况,正如您评论的那样,您可以只使用 ViewGroup
的 LayoutParams
。如果您要设置特定于某种 View 类型的参数(例如,RelativeLayout
s 中的对齐方式),则必须导入该类型 View 的 LayoutParams
。
关于android - 如何更改 ImageView 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8453004/