我正在使用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;
}