在android中以横向模式在viewpager中将图像调整到屏幕宽度

时间:2014-04-28 07:43:50

标签: android android-viewpager android-imageview

我有VerticalViewPager并且我有一些图片。当我以横向模式旋转设备时,我的ImageView不会缩放到我的屏幕宽度。如果图像相反,它适合高度。我用了AspectRatioImageView。它适合宽度,但VerticalViewPager不向下滚动。 谢谢。

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>

这是我的instaniateItem ImagePageAdapter延伸PagerAdapter

@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身高。当我向下滚动图像时,它只会转到另一页而不是滚动缩放的图像。

2 个答案:

答案 0 :(得分:2)

这就是您所需要的。

这是我发现的一个很好的解决方案。

Android Crop Center of Bitmap

这允许根据您的方向设置高度和宽度。

要将图像的比例更改为全屏,通常使用如下的中心裁剪:

yourImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

希望这些信息有用.. :)

答案 1 :(得分:0)

在活动代码中使用android:scalType = "fitxy",例如imageView.setScaleType(ImageView.ScaleType.FIT_XY);