2016-09-07 4 views
0

私は素晴らしいAndroidライブラリのいくつかを調べていましたが、Android BrokenViewが見つかりました。使い方が簡単で、タッチイベントを使って壊れたアニメーションを表示します。ここでは、BrokenViewとして動作するようにViewを有効にするために追加する必要がしているコードは次のとおりです。プログラムによるアニメーションAndroid BrokenView

brokenView = BrokenView.add2Window(context); 
listener = new BrokenTouchListener.Builder(brokenView).build(); 
view.setOnTouchListener(listener); 

私がきた問題は、実際ずに、私はプログラム的にすなわち壊れたアニメーションを実行したいということですタッチイベント。私はソースコードを見てみましたが、ほとんどの方法がprotectedであるため、その達成方法を理解できませんでした。

どうすればいいですか?

+0

[onTouch()](https://github.com/zhanyongsheng/BrokenView/blob/master/brokenview/src/main/java/com/zys/brokenview/BrokenTouchListener.java )。あなた自身でそれをコピーして編集してください –

+0

ええ、私はそれを見ましたが、私はアニメーション( 'brokenAnim.start();')をプログラムで起動し、タッチイベントでは開始しません –

答えて

0

私はモーションイベントを使用してこれを達成しました。それは動作しますが、createAnimator()を直接呼び出すことをお勧めします。これは、ユーザーがタッチイベントを介してスマッシュをトリガできるようにしたくないためです。私がやりたいのは何

long downTime = SystemClock.uptimeMillis(); 
long eventTime = SystemClock.uptimeMillis()+1000; 

int[] coords = new int[2]; 
targetView.getLocationOnScreen(coords); 

float x = coords[0] + targetView.getWidth()/2; 
float y = coords[1] + targetView.getHeight()/2; 

MotionEvent motionEvent = MotionEvent.obtain(
       downTime, 
       eventTime, 
       MotionEvent.ACTION_DOWN, 
       x, 
       y, 
       0 
    ); 

mBrokenTouchListener = new BrokenTouchListener.Builder(mBrokenView) 
     .setEnableArea(mRootView) 
     .build(); 

mBrokenTouchListener.onTouch(targetView, motionEvent); 

はこれです:

Point point = new Point((int)x, (int)y); 
BrokenConfig config = new BrokenConfig(); 
brokenView.createAnimator(mFLTargetView, point, config); 
brokenView.setEnable(true); 
// or 
brokenView.start(); 

しかしBrokenConfigは、パッケージプライベートであり、何のstart()メソッドがありません。

HTHそれがである

関連する問題