如何在Windows Phone上实现Android上的倾斜效果?

fra*_*ish 10 android android-button

我希望在Android操作系统上点击按钮时实现倾斜效果.

倾斜效果:不会将整个按钮视为按下.应该只触摸触摸事件发生的部分.

这在Android上很容易实现吗?

在此输入图像描述

Hal*_*alR 7

一种简单的方法是使用画布绘制来绘制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;
Run Code Online (Sandbox Code Playgroud)

所以使用这些权重,您可以计算该角落的x和y位置:

x1 = xUntouched1 * untouchedWeight + xTouched1 * touchedWeight1;
y1 = yUntouched1 * untouchedWeight + yTouched1 * touchedWeight1;
Run Code Online (Sandbox Code Playgroud)

然后对其他3个角进行类似的操作.