在屏幕上方隐藏ImageView /以编程方式将y位置设置为负数

时间:2014-11-24 15:31:40

标签: java android imageview position

我在xml中隐藏了一个带有负marginTop的Imageview。这个视图从开始时的负面位置滑入屏幕。

但是当我尝试以编程方式隐藏它时,它只能设置为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。

所以我的问题是我如何设置图像视图的y位置到-350?

3 个答案:

答案 0 :(得分:1)

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

然后,您可以在此动画中使用View.setVisible(View.VISIBLE)View.setVisible(View.INVISIBLE)来获得所需的效果。您应该查看的动画是与TranslateAnimation相关的动画。可以在Animating Layout Changes URL处引用动画视图以获取更多信息。

答案 1 :(得分:0)

您可以使用android.view.View.setTop(int top)而不是设置边距。

答案 2 :(得分:0)

我解决了。

事实证明,如果你在setY()方法中加上一个负数,它会从当前位置减去它。所以我只是将其改为

tip.setY(0-350);

我现在正在哭泣和大笑,希望其他人可能会发现这对将来有用! :&#39)