运行时更改图像位置

时间:2011-09-18 15:56:15

标签: android android-layout

我正在创建一个应用程序,我想在运行时更改我的图像位置(imageview)。我无法做到。我正在使用线性布局。请任何人都可以给我特定的代码。

我尝试了以下代码(来自stackoverflow),但是dint工作:

ImageView leaf = (ImageView)findViewById(R.id.imageView1);

LayoutParams par = leaf.getLayoutParams();
par.leftMargin += 30;

leaf.setLayoutParams(par);

没有名为setLayoutParams()

的方法

5 个答案:

答案 0 :(得分:1)

您可以使用TranslateAnimation(fillAfter设置为true - 请参阅示例)。根据您是否需要任何延迟,将延迟时间设置为0,或者如果您想要将其设置为动画,请将其设置得更高。

样品: translate animation

答案 1 :(得分:1)

如果你必须使用绝对(你不应该),并且你必须在运行时移动一些东西,你可以制作第二个ImageView并在代码中选择使用哪个:

我有一个小小的卡通角色需要一直在屏幕的底部 - 他的一个动画是跳出菜单的方式(在他不在的地方的设备上看起来很傻)。

代码根据设备返回的屏幕分辨率选择要使用的ImageView。它不优雅,但它确实有效,只要你注意命名等应该是安全的。

*注意:到目前为止,在我的测试中,只要每个ImageView没有在带有'src'图像的xml中初始化,在你给它们分配东西之前都不会看到它们(所以不用担心如何处理其他一个)。

答案 2 :(得分:0)

如果您想仅移动图像视图直到下一个布局通过,请使用

ImageView leaf = (ImageView)findViewById(R.id.imageView1);
leaf.offsetLeftAndRight(30);

否则会像其他人建议的那样创建新的布局参数。

答案 3 :(得分:0)

肯定有一种名为

的方法

android.view.View.setLayoutParams(LayoutParams params)

你必须在这里遇到其他一些问题。我刚刚为我的一个ImageView测试了它,并且能够在运行时更改图像的大小。

答案 4 :(得分:-2)

在修改之前,您需要创建一个新的LayoutParams。我不知道为什么,但它对我有用:

params = new RelativeLayout.LayoutParams(leaf.getLayoutParams());
par.leftMargin += 30;
leaf.setLayoutParams(params);