2014-11-24 89 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

相關問題