PhotoViewAttacherを使用すると、imgviewが中央に表示されません。 写真は常に一番上にありますが、写真をタッチすると中央に移動します。助けてください。
はい。 私は同じ問題を抱えています😟
左上の画像:
中央の画像:
ここにXMLを貼り付けて、レイアウトがどのように見えるかを示します。
@Jawnnypoo私はImageViewをプログラムで作成し、それをレイアウトに追加しています。
次に、プログラムでビューを追加するために使用しているコードを貼り付けることができますか?
ズーム可能をfalseに設定すると、問題が解決しました。
私はそれを解決しました。 ビューページャーで、PhotoViewAttacherを使用して画像を表示すると、画像が常に中央に表示されないので、理由がわかりません。 ただし、正しい方法は、viewpagerのアダプタでPhotoViewを使用することです。
PagerAdapterのInstantiateItemにPhotoViewAttacherを追加しているときに、私も同じように壊れました。 ただし、サンプルで記述されているImageViewの代わりにPhotoViewを使用すると、修正されました。 それはアンドロイド4.3と5.1.1で同じように壊れていました。 画像が高すぎる場合は、上ではなく左に配置されます。 これは、必要な場合に備えて、壊れたバージョンから動作するバージョンへのコミットです。 https://github.com/SimpleMobileTools/Simple-Gallery/commit/3983428d5fd4810e28fadd915a59ca08558ba4ae
@tibbiもこれを経験しており、あなたの助けを借りて解決しました。 コードを共有していただきありがとうございます。
ズーム可能をfalseに設定すると、画像ビューが表示されます。 PhotoViewを使うときも。 しかし、ズームと中央の画像が必要なため、これらのソリューションは私には有効ではありません。
@ E2Clinceついに解決策を見つけました!! このウェブサイトを参照してください!
http://stackoverflow.com/questions/33479400/android-photoview-setdisplaymatrix
@tibbiの方法は私のために働きます。 ImageViewの代わりにPhotoViewを使用してください。 ありがとう!!
この問題を解決しました。 次の方法を使用します。
mAttacher.setOnScaleChangeListener(new PhotoViewAttacher.OnScaleChangeListener(){
@オーバーライド
public void onScaleChange(float scaleFactor、float focusX、float focusY){
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT、RelativeLayout.LayoutParams.MATCH_PARENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
mAttacher.getImageView()。setLayoutParams(params);
}
});
あなたguyzは素晴らしい感謝です
@AnswerZhao同じ問題に直面しています。解決方法を教えてください。
ありがとう
最も参考になるコメント
PagerAdapterのInstantiateItemにPhotoViewAttacherを追加しているときに、私も同じように壊れました。 ただし、サンプルで記述されているImageViewの代わりにPhotoViewを使用すると、修正されました。 それはアンドロイド4.3と5.1.1で同じように壊れていました。 画像が高すぎる場合は、上ではなく左に配置されます。 これは、必要な場合に備えて、壊れたバージョンから動作するバージョンへのコミットです。 https://github.com/SimpleMobileTools/Simple-Gallery/commit/3983428d5fd4810e28fadd915a59ca08558ba4ae