私はgithubのTouchImageViewを使用し、matrix.posttranslateを使用してズーム画像のドラッグのユーザーコントロールを処理しています。問題は、ユーザーがいつ画像の境界線にドラッグするかを知る必要があるため、画像が水平方向に移動できなくなることです。誰かがそれについて理想を持っていますか?
質問する
131 次
2 に答える
1
回転していない場合Matrix
、2 番目と 5 番目の要素はtranslateX
andtranslateY
です。
final Matrix matrix = ...;
final float[] values = new float[9];
matrix.getValues(values);
final float translateX = values[2];
final float translateY = values[5];
于 2013-01-10T10:11:53.480 に答える
0
ありがとう。そして、githubでギャラリーのソースコードを深く読んだ後、私は解決策を得ました。右の境界線にスワイプするかどうかを確認するには:
float scaledWidth = Math.round(mOrigWidth * mSaveScale);
if (Math.abs(mViewWidth - translateX - scaledWidth) <= 1.0) {
// drag to right border
ALog.d("touchimageview", "right x: "
+ (mViewWidth - translateX - scaledWidth));
touchEventListener.onZoomToOriginal();
break;
}
于 2013-01-10T14:41:10.387 に答える