2015-12-16 63 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的內容(包含對象)