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="#c19aa9" > <!-- How to show border between GridView items? First we set a background color for GridView. Then we set different background color for items. Finally, GridView vertical and horizontal spacing act as a border between GridView items. --> <GridView android:id="@+id/gv" android:layout_width="650dp" android:layout_height="wrap_content" android:padding="2dp" android:numColumns="3" android:background="#8c898f" android:verticalSpacing="2dp" android:horizontalSpacing="2dp" 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.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 { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get the widgets reference from XML layout 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", "Cutleaf coneflower", "Coast polypody", "Water fern" }; // Populate a List from Array elements jawaban 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; //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) /* IMPORTANT Adjust the TextView widget width depending on GridView width and number of columns. GridView width / Number of columns = TextView width. Also calculate the GridView padding, margins, vertical spacing and horizontal spacing. */ params.width = getPixelsFromDPs(MainActivity.this,168); // 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("#d9d5dc")); // 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; } }
- How to use GridView OnItemClickListener
- How to add a border around GridView
- How to use TextView to display GridView item text
- How to change GridView selected item background color
- How to change GridView item height
- How to disable item from GridView
- How to delete an item from GridView
- How to add an item to GridView dynamically
- How to set ImageButton pressed state background
- How to create a ProgressBar programmatically
Komentar
Posting Komentar