2011-09-18 80 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,並且能夠在運行時更改圖像的大小。