我有一个可以包含NxM自定义项目(实际上是模因)的GridView
我面临的问题是,当我尝试从这些图像中保存位图时,它会被裁剪为图像在屏幕上呈现,因为不可见的图像或部分图像是零空间。
(如果有办法实际拍摄这些图像而不调整网格大小,请告诉我。)
所以我现在要做的就是调整网格大小以适应可用的屏幕高度。
这是我的主要布局的一部分:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:id="@+id/rlMemeHolder"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_below="@id/ads_banner"
android:layout_above="@+id/relativeLayout">
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:id="@+id/meme_grid"
android:layout_centerInParent="true">
</GridView>
</RelativeLayout>
在我的活动OnCreate上,我插入一个ZoomView(来自pl.polidea.ZoomView),如下所示:
//Setting the ZoomView from ZoomView.jar library
zoomView = new ZoomView(this);
rlMemeHolder = (RelativeLayout)findViewById(R.id.rlMemeHolder);
rlMemeHolder.removeView(grvMemes);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
zoomView.setLayoutParams(params);
zoomView.setMaxZoom(4);
rlMemeHolder.addView(zoomView);
FrameLayout.LayoutParams params2 = new FrameLayout.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT);
params2.gravity = Gravity.CENTER;
params2.setMargins(50,0,50,0);
grvMemes.setLayoutParams(params2);
zoomView.addView(grvMemes);
注意:我已经尝试将gridView的高度设置为MATCH_PARENT,没有运气,它可以在溢出时滚动。 (我希望所有网格都适合屏幕)