点击imageView
时,我试图让图片全屏显示。
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v) {
if (isImageFitToScreen) {
isImageFitToScreen = false;
imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
imageView.setAdjustViewBounds(true);
imageView.setScaleType(ImageView.ScaleType.CENTER);
} else {
isImageFitToScreen = true;
imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
}
}
});
XML
<ImageView
android:layout_gravity="center"
android:layout_width="214dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@mipmap/no_image"
android:id="@+id/imageView"
android:layout_weight="0.19" />
点击imageView
之前,imageView
位于中心位置。当它点击然后恢复到正常大小时,imageView
的大小变小并且移动到左侧。如何使大小保持与正常(放大前)相同并将imageView固定在中心?
答案 0 :(得分:1)
使用ViewGroup.LayoutParams变量存储imageview的默认LayoutParams,并将其与Imageview clickListener一起使用。
isImageFitToScreen=false;
final ViewGroup.LayoutParams layoutParams=imageView.getLayoutParams();
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isImageFitToScreen) {
isImageFitToScreen = false;
imageView.setLayoutParams(layoutParams);
} else {
isImageFitToScreen = true;
imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
}
}
});
答案 1 :(得分:1)
嗯,首先你需要保存imageview的宽度和高度,然后你需要得到布局或相对布局的宽度和高度或者包含imageview的屏幕大小
* LinearLayout,relativeLayout(容器),你需要放入xml,
以内容为中心
android:layout_gravity="center"
*获取imageview或布局的宽度和高度,请检查此link
1.-获取imageview的大小和容器
2.-展开和缩小imageview,if(validate == true)imageview = sizebig else imageview = sizeshort
注意:如果图像不居中,请检查此link以使图像视图居中,如果图像视图不居中,则尝试将线性布局或相对布局(contariner)的内容集中在一起< / p>