在Android中更改GridView中按钮的大小

时间:2019-02-23 06:44:10

标签: java android

我正在使用GridView收集语音应用程序。 一行中有四个按钮,它们可以更改GridView下面的GridView和Banner广告中按钮的类型。 我想更改GridView中所有按钮的高度,以便按钮可以适合屏幕的不同大小,并使宽度自动缩放以匹配高度。 所以所有的按钮都是方形的。有人可以帮我解释一下如何根据屏幕的高度更改GridView中按钮的高度吗?谢谢。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 


   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:padding="0dp"
   android:background="#3d5b97"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   tools:context=".MainActivity">

<GridView
    android:id="@+id/gridview"
    android:layout_marginTop="30dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#3d5b97"
    android:gravity="center_horizontal"
    android:verticalSpacing="10dp"
    android:numColumns="4"
    android:layout_alignParentTop="true"
    android:layout_marginBottom="10dp"
    android:layout_above="@id/layout_buttons"
    android:stretchMode="columnWidth"
    />

<include android:id="@+id/layout_buttons"
         layout="@layout/bottom_button_layout"
        android:layout_height="70dp"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_marginBottom="15dp"
        android:layout_above="@id/adView"
    />

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111">

</com.google.android.gms.ads.AdView>

grid_items.xml

我现在正在设置按钮65dp的大小。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#3d5b97"
    android:padding="3dp">




<Button
    android:id="@+id/button_normal"
    android:layout_width="65dp"
    android:layout_height="65dp"
    android:background="@drawable/button_layout"
    android:textSize="34px"
    android:textColor="#ffffff"/>

</LinearLayout>

Java

@Override
public View getView(final int position, View convertView, ViewGroup parent){

    Button button;

    if(convertView == null){

        convertView = inflater.inflate(layoutID,null);

        button =  convertView.findViewById(R.id.button_normal);

        button.setText(names[position]);
        button.setTag(position);

    }else{
        button = (Button) convertView;
    }

    button.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {

            int buttonTag = (Integer) v.getTag();
            soundPool.autoPause();
            soundPool.play(voiceArray.get(segment).get(position), 1, 1, 0, 0, 1);

        }
    });

    return button;

}

0 个答案:

没有答案