如何根据屏幕尺寸调整视图大小?

时间:2019-01-16 13:05:45

标签: android android-recyclerview resize screen gridlayoutmanager

在使用GridLayoutManager的recyclerview中,我有VideoViews,其中有2列纵向显示和4列横向显示。我想根据屏幕尺寸调整VideoView的大小,因此,在纵向模式下,我将屏幕的宽度除以2,然后将其设置为VideoView的宽度和高度,在横向模式下,将其宽度除以4,然后将其设置为height和VideoView的宽度。现在,我的方法是扩展VideoView并覆盖onMeasure。

public class CustomVideoView extends VideoView {

    public CustomVideoView(Context context) {
        super(context);
    }

    public CustomVideoView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int desiredWidth = getSuggestedMinimumWidth() + getPaddingLeft() + getPaddingRight();
        int desiredHeight = getSuggestedMinimumHeight() + getPaddingTop() + getPaddingBottom();

        setMeasuredDimension(
                measureDimension(desiredWidth, widthMeasureSpec),
                measureDimension(desiredWidth, widthMeasureSpec)
        );
    }

}

宽度会根据GridLayoutManager中的列数自动调整。但是,我不想扩展每个需要调整大小的视图。

有更好的方法吗?

0 个答案:

没有答案