Android OSで、ボタンがクリックされたときにチルト効果を実現したい。
傾斜効果:ボタン全体が押されたように見えるわけではありません。タッチイベントが発生した部分だけが押されているように見えるはずです。
これはAndroidで簡単に可能ですか?
Android OSで、ボタンがクリックされたときにチルト効果を実現したい。
傾斜効果:ボタン全体が押されたように見えるわけではありません。タッチイベントが発生した部分だけが押されているように見えるはずです。
これはAndroidで簡単に可能ですか?
簡単な方法は、キャンバス ドローを使用して 4 辺の形状を描くことです。
4つのコーナーごとに検討してください。「触れられていない」長方形はフルサイズになり、触れられた長方形は小さくなります。
四角形の各部分に対して計算したポイントを使用して、四辺形を描くだけです。タッチ位置を取得してから、各ポイントに与える「重み」を計算できます。
各コーナーを計算するには、タッチされた座標に与える「重み」と、触れられていない座標に与える「重み」を計算する必要があります。左上隅に触れると、その隅は触れた座標の 100% を使用し、他の 3 つの隅はすべて触れていない座標を使用します。
上部の中央に触れると、次のような形状になります。
タッチがコーナーからどれだけ離れているかを計算することで、あらゆるタッチ スポットのコーナーを計算できます。
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
2番目のステップでは、ボタンなどで使用できるようにします.
残念ながら、HalR の非常に優れた (ただし、私には数学的すぎる) 回答は使用しませんでした。