10

Android OSで、ボタンがクリックされたときにチルト効果を実現したい。

傾斜効果:ボタン全体が押されたように見えるわけではありません。タッチイベントが発生した部分だけが押されているように見えるはずです。

これはAndroidで簡単に可能ですか?

ここに画像の説明を入力してください

4

2 に答える 2

7

簡単な方法は、キャンバス ドローを使用して 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 つのコーナーについても同様に行います。

于 2013-03-20T06:02:03.867 に答える
3

ここで最初のドラフトを作成しました: https ://github.com/flavienlaurent/TiltEffect

2番目のステップでは、ボタンなどで使用できるようにします.

残念ながら、HalR の非常に優れた (ただし、私には数学的すぎる) 回答は使用しませんでした。

于 2013-07-18T16:26:51.007 に答える