0

グリッドビューを水平方向にパンする方法はありますか?画像にグリッドビューを実装しています。したがって、画像をズームするたびに、画像グリッドもすべての方向にズームおよびパンする必要があるため、画像の特定の領域を選択できます。

グリッドのパンをグーグルで検索しましたが、満足のいく回答が得られませんでした。いくつかのサンプルコードを手伝ってください。

4

1 に答える 1

0

私も、画像ビュー以外のビューをズームするための標準的な方法をいくつか探しましたが、何も見つかりませんでした。そのため、これに対する回避策を実行しましたが、うまくいきました。
ビューをズームするには、fillAfter プロパティを有効にしてビューにズーム アニメーションを適用できます。

これを行う方法は次のとおりです。

    ScaleAnimation scale;
    final float MAX_SCALE_FACTOR = 5f;
    float currentScaleFactor = 1;
    public static final long DURATION = 500;

    GridView grid = (GridView)findViewById(R.id.grid);


    public void scaleMyView()
    {
        if(currentScaleFactor <= MAX_SCALE_FACTOR)
        {
             DecelerateInterpolator interpolator = new  DecelerateInterpolator();
             scale = new ScaleAnimation(currentScaleFactor, currentScaleFactor*1.2f, 
                            currentScaleFactor, currentScaleFactor*1.2f);
             currentScaleFactor *= 1.2;
             scale.setDuration(DURATION);
             scale.setInterpolator(interpolator);
             scale.setFillEnabled(true);
             scale.setFillAfter(true);

             grid.startAnimation(scale);
       }
  }

ここで、このメソッドが呼び出されるたびに、ビューがスケーリングされ、ディメンションが保存されます。アニメーションの長さを短くして、インスタント ズームの効果を与えることができます。これで、このメソッド onPan または onTouch を呼び出してズームを適用できます。

これが役立つことを願っています。

于 2012-09-03T07:14:59.260 に答える