繁体   English   中英

按钮调整大小问题Android

[英]Button resize issue Android

我有4个按钮,我想在gridview中显示。 我希望他们尽可能地填满屏幕,但我从未做过。 我尝试过所有类型的ScaleTypes,但它不起作用。 现在我在FIT_CENTER中有缩放类型,但是我得到了意想不到的结果。 这是我到目前为止的代码:

Main.java

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Display screenSize = getWindowManager().getDefaultDisplay();
        int screenWidth = screenSize.getWidth();
        int screenHeight = screenSize.getHeight();

        int iconWidth =  screenWidth/4;
        int iconHeight=  screenHeight/2;

        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this, iconWidth, iconHeight));

        }

ImageAdapter.java

public View getView(final int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(m_Context);
            imageView.setLayoutParams(new GridView.LayoutParams(m_width, m_height));
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            imageView.setPadding(8, 8, 8, 8);

        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageResource(mThumbIds[position]);
        return imageView;
    }

GridViewLayout.xml

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
    android:numColumns="2"
    android:background="#FFFFFF"/>

代码的结果如下所示:

错误的结果

这就是我希望它看起来像:

期望的结果

请注意,最后一个屏幕截图是硬编码的,这显然不是我的愿望。 我希望这可以在每个屏幕尺寸上工作而无需硬编码。

您可以使用带有GridLayoutManager的Recycler视图来实现它。 在那里,您可以定义单个项目的大小,以匹配设备高度和宽度的一半。 然后它就是你预期的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM