使用按钮 - Android在运行时调整ImageView的大小

kas*_*sai 4 android resize runtime imageview

我正在使用ImageView容器显示图像.当用户输入特定值并单击更新时,需要调整图像大小

resize仅用于显示,原始资源保持不变.没有编辑,保存等

xml布局

<ImageView 
android:background="@drawable/picture01" 
android:id="@+id/picture01holder" 
android:layout_below="@+id/TextView01" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
</ImageView>
Run Code Online (Sandbox Code Playgroud)

main.java

final ImageView pic01 = (ImageView)findViewById(R.id.picture01);
Run Code Online (Sandbox Code Playgroud)

现在我该怎么做动态分配这个pic01我选择的大小.只是功能,我可以自己在一个按钮内实现它.我相信我必须使用像pic01.setLayoutParams,但我不知道如何使用它.

基本上我想在.java中覆盖layout_height ="wrap_content"和layout_width ="wrap_content"

小智 5

Imageview通过采取改变大小LayoutParams

    final ImageView pic01 = (ImageView)findViewById(R.id.picture01);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(50, 50);
    pic01.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)


And*_*tha 5

首先,您必须根据您的喜好将图像的比例类型设置为CENTER_INSIDE 或 CENTER_CROP。您应该在 onCreate() 方法中执行此操作。

myImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
Run Code Online (Sandbox Code Playgroud)

之后你只需要在你的布局中调整图像视图的大小。这将取决于您使用的布局类型。LinearLayout 的一个例子是:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100,200);
myImageView.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)

或者您可以设置组件的最小尺寸:

myImageView.setMinimumWidth(200);
myImageView.setMinimumHeight(200);
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,请确保尺寸可以在布局内实现。如果您有多个权重较小的组件,则图像视图可能无法占用您需要的空间。