Android 单击ImageView时,图像不会全屏显示
单击Android 单击ImageView时,图像不会全屏显示,android,image,gallery,fullscreen,image-gallery,Android,Image,Gallery,Fullscreen,Image Gallery,单击imageView时,我想显示我的位图图像的全屏(从gallery或captured image中选择) imageView .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(zoomOut) { Toast.makeText(getApplicationContext(), "N
imageView
时,我想显示我的位图
图像的全屏(从gallery或captured image中选择)
imageView .setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(zoomOut) {
Toast.makeText(getApplicationContext(), "NORMAL SIZE!", Toast.LENGTH_LONG).show();
imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
imageView.setAdjustViewBounds(true);
zoomOut =false;
}else{
Toast.makeText(getApplicationContext(), "FULLSCREEN!", Toast.LENGTH_LONG).show();
imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
zoomOut = true;
}
}
});
这是我的xml(活动B)
活动B
点击前
点击后
再次单击以缩小
使用以下命令编辑代码
TextView mTextViewClaims = (TextView) findViewById(R.id.textViewClaims);
TextView mTextViewClaimsType = (TextView) findViewById(R.id.textViewClaimsType);
TextView mTextViewAmount = (TextView) findViewById(R.id.textViewAmount);
TextView mTextView12 = (TextView) findViewById(R.id.textView12);
EditText mEditTextAmount = (EditText) findViewById(R.id.editTextAmount);
EditText mTextDescription = (EditText) findViewById(R.id.textDescription);
Button mButtonAdd = (Button) findViewById(R.id.buttonAdd);
Button mButtonSave = (Button) findViewById(R.id.buttonSave);
imageView .setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(zoomOut) {
Toast.makeText(getApplicationContext(), "NORMAL SIZE!", Toast.LENGTH_LONG).show();
float scale = getContext().getResources().getDisplayMetrics().density;
imageView.setLayoutParams(new LinearLayout.LayoutParams((int)(350 * scale + 0.5f) , (int)(300 * scale + 0.5f)));
imageView.setAdjustViewBounds(true);
mTextViewClaims.setVisibility(View.VISIBLE);
mTextViewClaimsType.setVisibility(View.VISIBLE);
mTextViewAmount.setVisibility(View.VISIBLE);
mTextView12.setVisibility(View.VISIBLE);
mEditTextAmount.setVisibility(View.VISIBLE);
mTextDescription.setVisibility(View.VISIBLE);
mButtonAdd.setVisibility(View.VISIBLE);
mButtonSave.setVisibility(View.VISIBLE);
zoomOut =false;
}else{
Toast.makeText(getApplicationContext(), "FULLSCREEN!", Toast.LENGTH_LONG).show();
float scaleHeigth = getApplicationContext().getResources().getDisplayMetrics().heightPixels;
float scaleWidth = getApplicationContext().getResources().getDisplayMetrics().widthPixels;
imageView.setLayoutParams(new LinearLayout.LayoutParams((int)scaleWidth , (int)scaleHeigth));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
mTextViewClaims.setVisibility(View.GONE);
mTextViewClaimsType.setVisibility(View.GONE);
mTextViewAmount.setVisibility(View.GONE);
mTextView12.setVisibility(View.GONE);
mEditTextAmount.setVisibility(View.GONE);
mTextDescription.setVisibility(View.GONE);
mButtonAdd.setVisibility(View.GONE);
mButtonSave.setVisibility(View.GONE);
zoomOut = true;
}
}
});
好的,我明白了,首先你必须使用相对论!,让我举个例子(现在尝试相对布局)。@Elenasys谢谢。我希望它只在放大时显示图像。@Elenasys我必须更改布局中的所有内容?有人有解决方案吗?@Tony是的,我用解决方案更新了我的答案谢谢你的回答:)图像现在变大了,但仍然不能全屏显示。我仍然可以看到活动B中的文本。这意味着您只想显示图像,而不想显示其他内容。对吗?没错。当它再次点击时,它将缩小(与活动B完全相同)Tony,如果你使元素不可见会怎么样?@Tony answer用代码更新,让我知道它是否有效。。!!
TextView mTextViewClaims = (TextView) findViewById(R.id.textViewClaims);
TextView mTextViewClaimsType = (TextView) findViewById(R.id.textViewClaimsType);
TextView mTextViewAmount = (TextView) findViewById(R.id.textViewAmount);
TextView mTextView12 = (TextView) findViewById(R.id.textView12);
EditText mEditTextAmount = (EditText) findViewById(R.id.editTextAmount);
EditText mTextDescription = (EditText) findViewById(R.id.textDescription);
Button mButtonAdd = (Button) findViewById(R.id.buttonAdd);
Button mButtonSave = (Button) findViewById(R.id.buttonSave);
imageView .setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(zoomOut) {
Toast.makeText(getApplicationContext(), "NORMAL SIZE!", Toast.LENGTH_LONG).show();
float scale = getContext().getResources().getDisplayMetrics().density;
imageView.setLayoutParams(new LinearLayout.LayoutParams((int)(350 * scale + 0.5f) , (int)(300 * scale + 0.5f)));
imageView.setAdjustViewBounds(true);
mTextViewClaims.setVisibility(View.VISIBLE);
mTextViewClaimsType.setVisibility(View.VISIBLE);
mTextViewAmount.setVisibility(View.VISIBLE);
mTextView12.setVisibility(View.VISIBLE);
mEditTextAmount.setVisibility(View.VISIBLE);
mTextDescription.setVisibility(View.VISIBLE);
mButtonAdd.setVisibility(View.VISIBLE);
mButtonSave.setVisibility(View.VISIBLE);
zoomOut =false;
}else{
Toast.makeText(getApplicationContext(), "FULLSCREEN!", Toast.LENGTH_LONG).show();
float scaleHeigth = getApplicationContext().getResources().getDisplayMetrics().heightPixels;
float scaleWidth = getApplicationContext().getResources().getDisplayMetrics().widthPixels;
imageView.setLayoutParams(new LinearLayout.LayoutParams((int)scaleWidth , (int)scaleHeigth));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
mTextViewClaims.setVisibility(View.GONE);
mTextViewClaimsType.setVisibility(View.GONE);
mTextViewAmount.setVisibility(View.GONE);
mTextView12.setVisibility(View.GONE);
mEditTextAmount.setVisibility(View.GONE);
mTextDescription.setVisibility(View.GONE);
mButtonAdd.setVisibility(View.GONE);
mButtonSave.setVisibility(View.GONE);
zoomOut = true;
}
}
});