2014-11-24 79 views
0

我在xml中隐藏了一个带有负边距的Imageview。此视图从开始时的负面位置滑入屏幕。在屏幕上方隐藏ImageView /以编程方式设置y位置为负

但是当我尝试以编程方式隐藏它,它只能被设置为y位置0

我试图边距为这样

ImageView tip = (ImageView) findViewById(R.id.tipscreen); 
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) tip.getLayoutParams(); 
params.setMargins(0, 0-350, 0, 0); 
tip.setLayoutParams(params); 

//and i've also tried 
tip.setY(-350); 

没有什么作品负数,它只是将位置设置为0.

所以我的问题是如何将软阴影设置为-350的imageview位置?

+0

你需要吗?你只是想让它消失或从屏幕上滑落,或? – Galax 2014-11-24 15:50:07

+0

是的,我需要它在屏幕之外,以便它可以在稍后滑动。我现在解决了它,并会发布答案。 – 2014-11-24 15:56:57

+0

好吧,你应该查看视图动画(http://developer.android.com/guide/topics/graphics/view-animation.html),即使你修正了它,它可以真正有用的滑入和滑出,缩放等 – Galax 2014-11-24 15:58:55

回答

0

您可以使用android.view.View.setTop(int top)代替边距设置。

+0

我试过,但当它再次成为屏幕动画时,它得到了所有的车,图像是一半,像素遍布的地方,真的很奇怪:s – 2014-11-24 15:58:04

1

您不必处理负数。如果您试图让视图滑入,那么您可以将其放在需要的位置并使用动画。从顶部滑入不是默认动画,但可以编写自己的动画。

然后你可以使用View.setVisible(View.VISIBLE)View.setVisible(View.INVISIBLE)这个动画来获得所需的效果。您应该查看的动画将与TranslateAnimation相关。有关详细信息,请参阅Animating Layout Changes URL以引用动画视图。

+0

它不是一个真正的动画,它取决于触摸事件和通过countDownTimer更改位置。但是,谢谢你的帮助,但我解决了它 – 2014-11-24 16:02:01

0

我解决了它。结果发现,如果你在setY()方法中加一个负数,它会从它的当前位置中减去它。所以我简单地将它改为

tip.setY(0-350); 

我现在正在大哭大笑,希望别人可能会在未来找到这个有用的东西! :')

+0

这仍然在'setY()'方法中设置一个负数。首先评估数学方程,然后调用该方法。有没有其他改变值得分享? – 2014-11-24 16:04:29

+0

这是唯一的变化。只是如果我没有把0放在那里,它只会从当前视图的任何y位置减去350,但我希望它从绝对顶部(0)到-350, – 2014-11-24 16:34:14

相关问题