我想在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