2011-09-18 81 views
0

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

我尝试下面的代码(从计算器),但力的工作:

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

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

leaf.setLayoutParams(par); 

有没有一种方法被称为setLayoutParams()

回答

1

你可以使用一个TranslateAnimation(与fillAfter设置为true - 看样)为了那个原因。根据您是否想要延迟,将延迟时间设置为0,或者如果您想要看动画,请将其设置得更高。

样品: translate animation

-2

您需要修改之前作出新的LayoutParams。我不知道为什么,但我的作品:

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

如果要移动的ImageView只有等到下一个布局传递,然后使用

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

否则创建新的布局PARAMS和别人一样建议。

1

如果必须使用绝对(你应该),你必须移动在运行时的东西,你可以进行第二次的ImageView和代码选择使用哪一个:

我一个需要一直在屏幕底部的小卡通人物 - 他的一个动画是跳出菜单的方式(某种看起来很傻的设备,他在那里附近)。

该代码根据从设备返回的屏幕分辨率选择要使用哪个ImageView。这不是优雅的,但它确实有用,只要你注意命名等,应该是安全的。注意:到目前为止,在我的测试中,只要每个ImageView没有在xml中用'src'图像进行初始化,在将任何东西分配给它们之前都不可见(所以不用担心如何处理另一个)。

0

肯定是有一个叫

android.view.View.setLayoutParams(的LayoutParams PARAMS)方法

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