我有一个xml文件,表示由自定义PagerAdapter加载的幻灯片:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/slideWrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ccc"
android:orientation="vertical">
<ImageView
android:id="@+id/ivSlide"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/slide_im_putting_face"
android:contentDescription="image"
android:scaleType="fitXY"
android:adjustViewBounds="true"/>
<EditText
android:id="@+id/edtSlide"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background_normal"
android:lines="3"
android:gravity="top|left"
android:inputType="textMultiLine"
android:scrollHorizontally="false"
android:textSize="25sp"
android:hint="@string/main_hint"
android:textColor="#000"
android:padding="10dp"
android:layout_marginBottom="40dp"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
如何将slideWrap容器调整为与缩放的ImageView完全相同的尺寸?不太确定如何做一个PagerAdapter。
答案 0 :(得分:0)
好的,所以额外的空白是因为ViewPager,显然你不能为你的身高设置换行内容:https://stackoverflow.com/a/8532550/641738
相反,我只根据所有幻灯片的静态宽度/高度计算了几个百分比,并相应地设置了包装器。我可以在各自的dp布局文件夹中设置幻灯片尺寸,但这看起来很麻烦。到目前为止,只要所有幻灯片尺寸相同,似乎在一些手持设备上工作得相当好。百分比有些试错:
// Check the display and make the necessary adjustments for Portrait mode
if(display.getRotation() == Surface.ROTATION_0 || display.getRotation() == Surface.ROTATION_180) {
double width = display.getWidth() * 0.93;
double adjustedHeight = width * 0.85;
wrapLayoutParams = new LinearLayout.LayoutParams((int)width, (int)adjustedHeight);
}
else {
double height = display.getHeight() * 0.73;
double adjustedWidth = height * 1.15;
wrapLayoutParams = new LinearLayout.LayoutParams((int)adjustedWidth, (int)height);
}
slideWrap.setLayoutParams(wrapLayoutParams);