当按下某个项目时,当前图像对话框会加载。但是,只要首次启动活动,加载的图像不在中心。在项目第一次按下时,它总是加载到屏幕的左上角只有。Android对话框图像在启动时不在位置
出于某种原因,当我压制后的项目时,它完全按照我的意愿加载到中心。但是当我重新开放这个活动时,它又会做同样的事情。
有没有人有任何线索是怎么回事?我的代码是:
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Dialog builder = new Dialog(getActivity());
builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
builder.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
ImageView imageView = new ImageView(getActivity());
builder.addContentView(imageView, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
builder.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
Picasso.with(getActivity()).load("http://i.imgur.com/45oAm8N.jpg").into(imageView);
//Glide.with(ChillFragment.this).load("http://i.imgur.com/bbTMZHD.jpg").into(imageView);
mAttacher = new PhotoViewAttacher(imageView);
mAttacher.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
//Outside region
if (!mAttacher.getDisplayRect().contains(e.getX(), e.getY())) {
builder.dismiss();
}
return false;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
return false;
}
});
builder.show();
试图改变以
RelativeLayout.LayoutParams Params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
Params.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
builder.addContentView(imageView, Params);
builder.getWindow().setLayout(Params.width, Params.height);
出于某种原因,当当我检查值WindowManager.LayoutParams LP =新WindowManager.LayoutParams(); lp.height和lp.width是-1! – Petersicecream