View的移動和縮放

2021-08-16 04:40:36 字數 1526 閱讀 9561

移動乙個

view

1.想要移動乙個view,我們可以在這個view上(或者它的子控制項上)設定乙個touchlistener,然後在ontouch()方法中新增移動的響應處理。

(pipview

.findviewbyid(r.id.

pip_move

)).setontouchlistener(

new

ontouchlistener()

return true;}})

;這裡的action_move的時候,layou()函式可以改變view的布局,但是view的實際的marigin引數並未改變,在設定pipwholeview的乙個子控制項的可見與不可見時,整個pipwholeview又回到了最初的位置(左上角),儘管移動時整個view是隨手指移動的,後面的view.setleft(),settop(),setright(),setbottom(),和layout()函式的效果一樣。

那麼既能改變view的視覺效果,又能改變view的布局屬性的是哪個方法呢?其實就是下面的layoutparams.setmargins(int left,int top,int right,int bottom)和view.setlayoutparams()方法。該方法設定了view的左上右下相對于父控制項的距離,其實只需設定前面兩個引數即可,左邊距和上邊距足夠確定view的位置(後面的兩個引數設定為0)。

首先宣告乙個view布局的布局引數變數,注意viewgroup(是乙個抽象類,子類有relativelayout,linearlayout,gridlayout,framelayout等)的layoutparams只能設定寬度和高度,它的子類的layoutparams才可以設定子控制項相對于父控制項的距離。

private 

relativelayout.layoutparams

piplayoutparams

;

然後在view的建構函式中初始化該變數。

public 

pipwindow

(view v

, context context)

return true;

}});

view

的縮放縮放乙個

view

的時候,最方便的方法是設定

view

的scalex()

和scaley()

,這樣不僅達到視覺上的縮放,又能改變

view

的屬性,更重要的一點是在縮放時,還可以設定

view

縮放的錨點(即以哪個點為中心進行縮放)具體**如下。

public boolean 

ontouch

(view view

, motionevent motionevent)

log.i(

"scale"

,"scaled!");

//sourceviewreset();

break;

}   

return true;

}

Android 縮放 移動 旋轉View相關方法

android rotation 關聯方法 setrotation float 屬性說明 旋轉度數 android rotationx 關聯方法 setrotationx float 屬性說明 水平旋轉度數 android rotationy 關聯方法 setrotationy float 屬性說明...

unity ugui縮放 移動

乾貨羅列在前,不願意看的,拿東西走人,自己研究 關於ugui的排版方面,剛上手的時候,覺得 哎喲!不錯,這個刁。但是如果你使用過qt等軟體,其實ugui的對齊功能還是很落後的。如果你繼續使用這個排版功能,你就會發現 什麼啊這是,什麼邏輯啊,完全沒懂啊。如何修改ugui控制項到我指定的大小 如何移動u...

View的移動方式

android 3.0以後加入x,y,translationx,translationy等引數。x,y 表示為view在viewgroup中左上角的x,y的值,translationx,translationy在用於平移乙個view。預設是都為0,在呼叫了view的settranslationx s...