我想在 Android 操作系统上实现点击按钮时的倾斜效果。
倾斜效果:并非整个按钮都被按下。只有触摸事件发生的部分应该看起来被按下。
这在 Android 上容易实现吗?
最佳答案
一个简单的方法是使用 canvas draws 来绘制 4 个边形。
分别考虑 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 个角进行类似操作。
关于android - 如何在Android上实现像在Windows Phone上一样的倾斜效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15450722/