我想在Android OS上單擊按鈕時獲得傾斜效果。如何在Windows Phone上實現傾斜效果?
傾斜效果:不是整個按鈕將被視爲按下。只有發生觸摸事件的部分應該被按下。
這在Android上很容易嗎?
我想在Android OS上單擊按鈕時獲得傾斜效果。如何在Windows Phone上實現傾斜效果?
傾斜效果:不是整個按鈕將被視爲按下。只有發生觸摸事件的部分應該被按下。
這在Android上很容易嗎?
一個簡單的方法是使用畫布繪製來繪製4雙面的形狀。
考慮每個角落。 「未觸摸」矩形將是全尺寸,觸摸矩形會更小。
你只需要使用你計算矩形的每一部分的點來繪製你的四邊的形狀。你可以得到觸摸位置,然後找出給每個點多少「重量」。
要計算每個角,您需要計算出賦予觸摸座標的「重量」有多少,以及賦予未觸摸座標的「重量」有多少。如果觸摸左上角,該角將使用觸摸座標的100%,其他三個角將全部使用未觸摸的座標。
如果你碰到頂部中間,你會得到一個形狀像這樣:
我們可以計算出任何觸摸點的角落,從角落計算多遠你的觸摸是
float untouchedXWeight1 = Math.abs(xt - x1)/width;
//maximum of 1, minimum of 0
float untouchedYWeight1 = Math.abs(yt - y1)/height;
float untouchedWeight1 = (untouchedXWeight1 + untouchedYWeight1)/2;
//also maximum of 1, minimum of 0
float touchedWeight1 = 1 - untouchedWeight1;
所以這些權重,就可以計算出你的x和y位置的那個角落:
x1 = xUntouched1 * untouchedWeight + xTouched1 * touchedWeight1;
y1 = yUntouched1 * untouchedWeight + yTouched1 * touchedWeight1;
然後對其他3個邊角做人之道。
我創建了一個初稿在這裏:https://github.com/flavienlaurent/TiltEffect
在第二個步驟,我將使它可與按鈕等
不幸的是,我沒有用的很好(但太數學對我來說)HalR的回答
我無法將其應用於ViewGroup。你有什麼想法嗎? – frankish 2013-03-22 20:46:06
您是否曾嘗試過使用GLSurfaceView? – HalR 2013-03-22 23:33:05
在這個問題:http://stackoverflow.com/questions/7734228/android-accessing-buttons-from-surfaceview 其中一個答案顯示的基本知識: – HalR 2013-03-22 23:33:38