fra*_*ish 10 android android-button
我希望在Android操作系统上点击按钮时实现倾斜效果.
倾斜效果:不会将整个按钮视为按下.应该只触摸触摸事件发生的部分.
这在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;
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个角进行类似的操作.
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |