我有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
身高。当我向下滚动图像时,它只会转到另一页而不是滚动缩放的图像。
答案 0 :(得分:2)
这就是您所需要的。
这是我发现的一个很好的解决方案。
这允许根据您的方向设置高度和宽度。
要将图像的比例更改为全屏,通常使用如下的中心裁剪:
yourImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
希望这些信息有用.. :)
答案 1 :(得分:0)
在活动代码中使用android:scalType = "fitxy"
,例如imageView.setScaleType(ImageView.ScaleType.FIT_XY);