gpt4 book ai didi

android - PhotoView - 保持缩放和 xy 坐标

转载 作者:行者123 更新时间:2023-11-29 23:53:23 29 4
gpt4 key购买 nike

我正在使用 PhotoView Picasso在我的 Android 应用程序上。我想通过单击一个按钮来切换两个图像,同时保持缩放和 xy 坐标。我可以保持缩放,但很难保持 xy 坐标,因为两个图像具有不同的分辨率,我必须保持相对 xy 坐标 AFTER 缩放。当我切换到新图像时,如果我不保留 xy 坐标,则缩放后的图像始终位于中心。下面是我当前的代码,它只实现了保持缩放。

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {

// ... some basic stuffs here

mRequestCreator1 = Picasso.get().load(mImageUri1);
mRequestCreator2 = Picasso.get().load(mImageUri2);
mRequestCreator1.into(mPhotoView);

mBtnSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final float prevScale = mPhotoView.getScale();
// MUST use the callback because of timing issue.
Callback callback = new Callback() {
@Override
public void onSuccess() { mPhotoView.setScale(prevScale); }

@Override
public void onError(Exception e) { e.printStackTrace(); }
};

if(sPrevIsOriginal) {
mRequestCreator2.into(mPhotoView, callback);
} else {
mRequestCreator1.into(mPhotoView, callback);
}
sPrevIsOriginal = !sPrevIsOriginal;
}
});
}

最佳答案

经过多次试验和错误,我找到了如何去做。您必须使用 getSuppMatrix() 获取先前图像的补充矩阵,然后使用 setSuppMatrix() 将该补充矩阵应用于新图像。使用补充矩阵很重要。切勿尝试通过操纵 getImageMatrix()getDisplayMatrix() 来执行此操作,因为它要么不起作用,要么代码会变得更加复杂。

关于android - PhotoView - 保持缩放和 xy 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50635754/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com