How to change GridView item height in Android

activity_main.xml
 <RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/rl"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:padding="10dp"     tools:context=".MainActivity"     android:background="#418c5b"     >     <GridView         android:id="@+id/gv"         android:layout_width="675dp"         android:layout_height="wrap_content"         android:padding="5dp"         android:numColumns="4"         android:background="#63a955"         android:verticalSpacing="5dp"         android:horizontalSpacing="5dp"         android:stretchMode="columnWidth"         android:gravity="left"         >     </GridView> </RelativeLayout> 
MainActivity.java
 package com.cfsuman.me.androidcodesnippets;  import android.graphics.Color; import android.graphics.Typeface; import android.os.Bundle; import android.app.Activity; import android.util.TypedValue; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.GridView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.RelativeLayout.LayoutParams;  import java.util.ArrayList; import java.util.Arrays; import java.util.List;  import android.content.res.Resources;   public class MainActivity extends Activity {     private int previousSelectedPosition = -1;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          // Get the widgets reference from XML layout         simpulan GridView gv = (GridView) findViewById(R.id.gv);          // Initializing a new String Array         String[] plants = new String[]{                 "Catalina ironwood",                 "Cabinet cherry",                 "Pale corydalis",                 "Pink corydalis",                 "Belle Isle cress",                 "Land cress",                 "Orange coneflower",                 "Coast polypody",                 "Water fern"         };          // Populate a List from Array elements         simpulan List<String> plantsList = new ArrayList<String>(Arrays.asList(plants));          // Data bind GridView with ArrayAdapter (String Array elements)         gv.setAdapter(new ArrayAdapter<String>(                 this, android.R.layout.simple_list_item_1, plantsList) {             public View getView(int position, View convertView, ViewGroup parent) {                  // Return the GridView current item as a View                 View view = super.getView(position, convertView, parent);                  // Convert the view as a TextView widget                 TextView tv = (TextView) view;                  // set the TextView text color (GridView item color)                 tv.setTextColor(Color.DKGRAY);                  // Set the layout parameters for TextView widget                 RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(                         LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT                 );                 tv.setLayoutParams(lp);                  // Get the TextView LayoutParams                 RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) tv.getLayoutParams();                  // Set the width of TextView widget (item of GridView)                 params.width = getPixelsFromDPs(MainActivity.this, 120);                  // Set the TextView height (GridView item/row equal height)                 params.height = getPixelsFromDPs(MainActivity.this,50);                  // Set the TextView layout parameters                 tv.setLayoutParams(params);                  // Display TextView text in center position                 tv.setGravity(Gravity.CENTER);                  // Set the TextView text font family and text size                 tv.setTypeface(Typeface.SANS_SERIF, Typeface.NORMAL);                 tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12);                  // Set the TextView text (GridView item text)                 tv.setText(plantsList.get(position));                  // Set the TextView background color                 tv.setBackgroundColor(Color.parseColor("#FF78CF69"));                  // Return the TextView widget as GridView item                 return tv;             }         }); }      // Method for converting DP value to pixels     public static int getPixelsFromDPs(Activity activity, int dps){         Resources r = activity.getResources();         int  px = (int) (TypedValue.applyDimension(                 TypedValue.COMPLEX_UNIT_DIP, dps, r.getDisplayMetrics()));         return px;     } } 
More android examples

Komentar