2015-12-16 31 views
0

我试图在点击imageView时使图像显示全屏。缩小时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修正为中心?

回答

1

使用ViewGroup.LayoutParams变量来存储你的imageview的默认LayoutParams,并像ImageView一样使用它。

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

哦,首先你需要保存的ImageView的宽度和高度,然后你需要得到的布局或相对布局或屏幕包含该ImageView的

大小的宽度和高度

*的LinearLayout,RelativeLayout的(容器),你需要把在XML中,

中心内容

android:layout_gravity="center" 

*获得宽度和ImageView的或升高度ayout检查imageview的这个link

1.-获取大小和容器

2:扩大和承包商的ImageView的,如果(验证==真)的ImageView = sizebig其他的ImageView = sizeshort

注:如果图片不居中,请检查此link以使imageview居中(如果图片视图不居中),请尝试使用linearlayout或relativelayout的内容(包含对象)