Android 运行时更改图像位置

Android 运行时更改图像位置,android,android-layout,Android,Android Layout,我正在创建一个应用程序,希望在运行时更改图像(imageview)的位置。我做不到。我使用线性布局。请任何人能给我具体的代码这样做 我尝试了以下代码(来自stackoverflow),但效果不佳: ImageView leaf = (ImageView)findViewById(R.id.imageView1); LayoutParams par = leaf.getLayoutParams(); par.leftMargin += 30; leaf.setLayoutParams(par)

我正在创建一个应用程序,希望在运行时更改图像(imageview)的位置。我做不到。我使用线性布局。请任何人能给我具体的代码这样做

我尝试了以下代码(来自stackoverflow),但效果不佳:

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

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

leaf.setLayoutParams(par);

没有名为setLayoutParams()的方法

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

样本:

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

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

如果只想将imageview移动到下一个布局过程,请使用

ImageView leaf = (ImageView)findViewById(R.id.imageView1);
leaf.offsetLeftAndRight(30);
否则,请像其他人建议的那样创建新的布局参数。

如果必须使用绝对(而且不应该),并且必须在运行时移动某些内容,则只需创建第二个图像视图,并在代码中选择要使用的图像视图:

我有一个小卡通人物,需要一直在屏幕的底部——他的一个动画在菜单上跳出(在他不在附近的设备上看起来有点傻)

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


*注意:到目前为止,在我的测试中,只要每个ImageView没有用带有“src”图像的xml进行初始化,在您为它们分配某些内容之前,它们都不可见(因此不必担心如何处理另一个)。

肯定有一个方法被称为

android.view.view.setLayoutParams(LayoutParams参数)

你一定还有别的问题。我只是对其中一个ImageView进行了测试,并且能够在运行时更改图像的大小