制作动态GridView以适应屏幕android

时间:2016-04-28 12:16:06

标签: android gridview

我有一个可以包含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,没有运气,它可以在溢出时滚动。 (我希望所有网格都适合屏幕)

0 个答案:

没有答案