2014-04-28 60 views
1

我有一個VerticalViewPager,我有一些圖像。當我在橫向模式下旋轉設備時,我的ImageView不能縮放到我的屏幕寬度。它適合高度,如果圖像,而不是。我用AspectRatioImageView。它適合寬度,但VerticalViewPager不向下滾動。 謝謝。適合圖像到屏幕寬度在橫向模式在viewpager在android

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 
<HackyViewPager 
    android:id="@+id/vvp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#fff" 
    > 
</HackyViewPager> 
</RelativeLayout> 

這裏是rowitemview.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:pixlui="http://schemas.android.com/apk/com.neopixl.pixlui" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:background="#fff" > 
    <AspectRatioImageView 
    android:id="@+id/imageView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:src="@drawable/m4_3" /> 
</LinearLayout> 

這裏是我的我的ImagePageAdapter擴展PagerAdapterinstaniateItem

@Override 
    public Object instantiateItem(ViewGroup container, int position) 
    { 
     Context context = MainActivity.this; 

     container.requestLayout(); 
      AspectRatioImageView imageView = new  AspectRatioImageView(context); 
imageView.setImageDrawable(getResources().getDrawable(R.drawable.m4_3)); 


      mAttacher = new PhotoViewAttacher(imageView); 
      mAttacher.setOnMatrixChangeListener(new OnMatrixChangedListener() { 

      @Override 
      public void onMatrixChanged(RectF rect) { 
       if((int)rect.width()>_width) 
        viewPager.setLocked(true); 
       else 
        viewPager.setLocked(false); 
      } 
     }); 

P.S:這個問題是viewPager高度。當我向下滾動圖像時,它會轉到另一頁,而不是滾動縮放的圖像。

+0

請添加您的代碼和您的佈局。 – SacreDeveloper

回答

2

以下是您需要的。

這是我發現的一個很好的解決方案。

Android Crop Center of Bitmap

這允許設置高度和寬度你根據你的方向。

要改變圖像的縮放到全屏,您通常使用居中裁剪這樣的:

yourImageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 

希望這個信息是有用的.. :)

+0

我沒有圖像尺度的問題。我使用'AspectRatioImageView',它工作正常。問題是'ViewPager'不會將其高度縮放到容器。 – miladrasooli

+0

謝謝,這解決了左邊和右邊不需要的圖像邊距問題。 – Yar

0

使用android:scalType = "fitxy"在活動像這樣的代碼imageView.setScaleType(ImageView.ScaleType.FIT_XY);