指定兩個View之間的 位移動畫

2021-06-26 14:43:34 字數 2642 閱讀 1741

/**

* @param viewfirst

* 要移動的view

* @param viewsecond

* 目的地的view

* @param durationtime

* !!!重點:位移是以左下角為標註重合的

*/public void moveimg(imageview viewfirst, view viewsecond, long durationtime)

mimageview.setimagebitmap(bitmap);

framelayout_outside.addview(mimageview);

viewfirst = mimageview;

int btnposition = new int[2];

int viewposition = new int[2];

// 獲取 按鈕的位置

viewsecond.getlocationonscreen(btnposition);

mimageview.getlocationonscreen(viewposition);// 特別標註:這裡一定是要動態生成的view的座標而不是

// viewfirst的座標

// 獲取兩個元件的位置(double型別)和比率

float viewfirstx_start = (float) double.parsedouble(viewposition[0]

+ ""); // 0.0

float viewfirsty_start = (float) double.parsedouble(viewposition[1]

+ ""); // 106.0

float viewsecondx_start = (float) double.parsedouble(btnposition[0]

+ ""); // 33.0

float viewsecondy_start = (float) double.parsedouble(btnposition[1]

+ ""); // 731.0

float viewsecondh = viewsecond.getmeasuredheight();// 72

float viewsecondw = viewsecond.getmeasuredwidth(); // 96

float move2x = viewsecondx_start - viewfirstx_start - viewsecondw / 2;// 19.5

float move2y = viewsecondy_start - viewfirsty_start - viewsecondh / 2;// 717.5

// 初始化

animation translateanimation = new translateanimation(0, move2x, 0,

move2y);// 四個引數分別為 1:要移動的view的x座標 2:該view在x軸所要移動的距離

// 3:要移動的view的y座標 4:該view在y軸所要移動的距離

// 設定動畫時間

translateanimation.setduration(1000);

// viewfirst.startanimation(translateanimation);

// 縮放

scaleanimation mscaleanimation = new scaleanimation(1.0f, 0.1f, 1.0f,

0.1f);

// viewfirst.setdrawingcacheenabled(false);

animationset manimationset = new animationset(true);

manimationset.addanimation(mscaleanimation);

// manimationset.setfillafter(true);

manimationset.addanimation(translateanimation);

manimationset.setduration(durationtime);

mscaleanimation.setanimationlistener(new animationlistener()

@override

public void onanimationrepeat(animation animation)

@override

public void onanimationend(animation animation)

});viewfirst.startanimation(manimationset);

}

當此頁結束的時候
if (bitmap != null) 

bitmap = null;

因為上面在副喲on個bitmap,但是一定要在退出該頁的時候**掉.

同時對view延時執行兩個動畫時候的現象

同時對view延時執行兩個動畫時候的現象 對於view延時執行了兩個動畫後,會將第乙個動畫效果終止了,直接在第乙個動畫的view的最後的狀態上接執行後續的動畫效果,也就是說,我們可以利用這個特性來寫分段動畫效果,比如,可以定時2秒,2秒的狀態值為100 中途可以停止,達不到2秒的效果就觸發不了最終效...

兩個動畫函式的分析

寫了兩個回到頂部的函式 乙個是這樣的 function fanhui else if flag false flag false up btn.onclick function function moveelement interval interval else flag true fanhui ...

php 擷取兩個指定字元之間的字串

str 要擷取的字串 start str 指定開始的字串 end str 指定結束的字串 start strpos str start str end strripos str end str res substr str start mb strlen start str end start mb...