项目中有个需求,可以查看配套资源。该配套资源可以是png,jpg,gif资源
使用PhotoView库,地址:https://github.com/chrisbanes/PhotoView
在开发过程中遇到的问题
1.资源可以替换,地址是相同的
2.支持展示Gif动图
方案
public class PhotoViewActivity extends BaseActivity {
private LoadingDailog dialog;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photoviewer);
ImageView backIv = findViewById(R.id.iv_close);
final PhotoView photoView = findViewById(R.id.photoView);
backIv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClickBack();
}
});
final PhotoViewAttacher attacher = new PhotoViewAttacher(photoView);
dialog = new LoadingDailog.Builder(this)
.setMessage("加载中")
.setCancelable(true)
.setCancelOutside(true)
.create();
// 图片地址
String url = getIntent().getStringExtra("url");
RequestOptions options = new RequestOptions();
options.skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE);
dialog.show();
Glide.with(this).load(url).apply(options).listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
ToastUtils.show("加载失败");
dialog.dismiss();
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
attacher.update();
dialog.dismiss();
return false;
}
}).into(photoView);
}
@Override
public void onBackPressed() {
onClickBack();
}
private void onClickBack() {
finish();
overridePendingTransition(R.anim.retech_page_stay, R.anim.retech_page_to_bottom);
}
}