グリッドビューを水平方向にパンする方法はありますか?画像にグリッドビューを実装しています。したがって、画像をズームするたびに、画像グリッドもすべての方向にズームおよびパンする必要があるため、画像の特定の領域を選択できます。
グリッドのパンをグーグルで検索しましたが、満足のいく回答が得られませんでした。いくつかのサンプルコードを手伝ってください。
グリッドビューを水平方向にパンする方法はありますか?画像にグリッドビューを実装しています。したがって、画像をズームするたびに、画像グリッドもすべての方向にズームおよびパンする必要があるため、画像の特定の領域を選択できます。
グリッドのパンをグーグルで検索しましたが、満足のいく回答が得られませんでした。いくつかのサンプルコードを手伝ってください。
私も、画像ビュー以外のビューをズームするための標準的な方法をいくつか探しましたが、何も見つかりませんでした。そのため、これに対する回避策を実行しましたが、うまくいきました。
ビューをズームするには、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 を呼び出してズームを適用できます。
これが役立つことを願っています。