歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發教程:用GridView實現Gallery的效果

Android開發教程:用GridView實現Gallery的效果

日期:2017/3/1 11:08:10   编辑:Linux編程

最近一個項目要用到Gallery的效果 由於業務的需要,必須要有GridView的功能。

  1. package com.easymorse.grid.demo;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import Android.app.ListActivity;
  5. import android.os.Bundle;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.widget.ArrayAdapter;
  9. import android.widget.GridView;
  10. import android.widget.ListView;
  11. import android.widget.SimpleAdapter;
  12. public class GridDemoActivity extends ListActivity {
  13. /** Called when the activity is first created. */
  14. @Override
  15. public void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. LayoutInflater layoutInflater = (LayoutInflater) this
  19. .getSystemService("layout_inflater");
  20. View headerView=layoutInflater.inflate(R.layout.list_header, null);
  21. setGridView(headerView);
  22. ListView listView=(ListView) this.findViewById(android.R.id.list);
  23. listView.addHeaderView(headerView);
  24. listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,new String[]{"","","","","",""}));
  25. }
  26. private void setGridView(View view) {
  27. GridView gridView = (GridView) view.findViewById(R.id.grid);
  28. gridView.setNumColumns(10);
  29. ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String, Object>>();
  30. for (int i = 0; i < 10; i++) {
  31. HashMap<String, Object> map = new HashMap<String, Object>();
  32. map.put("ItemImage", R.drawable.k);
  33. map.put("ItemText", "" + "(" + i + ")");
  34. items.add(map);
  35. }
  36. SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.item,
  37. new String[] { "ItemImage", "ItemText" }, new int[] {
  38. R.id.ItemImage, R.id.ItemText });
  39. gridView.setAdapter(adapter);
  40. }
  41. }

item.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:paddingBottom="10.0dip" android:layout_width="90.0dip"
  4. android:layout_height="140.0dip">
  5. <ImageView android:id="@+id/ItemImage" android:layout_width="80.0dip"
  6. android:layout_height="108.0dip" android:layout_marginLeft="10.0dip"
  7. android:layout_centerHorizontal="true">
  8. </ImageView>
  9. <TextView android:layout_below="@+id/ItemImage" android:id="@+id/ItemText"
  10. android:ellipsize="end" android:layout_width="80.0dip"
  11. android:layout_height="26.0dip" android:layout_marginTop="5.0dip"
  12. android:singleLine="true" android:layout_centerHorizontal="true">
  13. </TextView>
  14. </RelativeLayout>

list_header.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical" android:layout_width="fill_parent"
  4. android:layout_height="200dp">
  5. <TextView android:layout_width="fill_parent"
  6. android:layout_height="wrap_content" android:text="最近訪問人物" />
  7. <HorizontalScrollView android:layout_width="fill_parent"
  8. android:layout_height="160dp">
  9. <FrameLayout android:layout_width="fill_parent"
  10. android:layout_height="match_parent">
  11. <LinearLayout android:layout_width="1100dp"
  12. android:layout_height="match_parent" android:orientation="horizontal">
  13. <GridView android:id="@+id/grid" android:layout_width="fill_parent"
  14. android:gravity="center" android:layout_height="fill_parent"
  15. android:horizontalSpacing="1.0dip" android:verticalSpacing="1.0dip"
  16. android:stretchMode="spacingWidthUniform" android:numColumns="auto_fit"
  17. android:columnWidth="80dip">
  18. </GridView>
  19. </LinearLayout>
  20. </FrameLayout>
  21. </HorizontalScrollView>
  22. </LinearLayout>

main,xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical" android:layout_width="fill_parent"
  4. android:layout_height="200dp">
  5. <TextView android:layout_width="fill_parent"
  6. android:layout_height="wrap_content" android:text="最近訪問人物" />
  7. <HorizontalScrollView android:layout_width="fill_parent"
  8. android:layout_height="160dp">
  9. <FrameLayout android:layout_width="fill_parent"
  10. android:layout_height="match_parent">
  11. <LinearLayout android:layout_width="1100dp"
  12. android:layout_height="match_parent" android:orientation="horizontal">
  13. <GridView android:id="@+id/grid" android:layout_width="fill_parent"
  14. android:gravity="center" android:layout_height="fill_parent"
  15. android:horizontalSpacing="1.0dip" android:verticalSpacing="1.0dip"
  16. android:stretchMode="spacingWidthUniform" android:numColumns="auto_fit"
  17. android:columnWidth="80dip">
  18. </GridView>
  19. </LinearLayout>
  20. </FrameLayout>
  21. </HorizontalScrollView>
  22. </LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<ListView android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@android:id/list" android:cacheColorHint="#00000000"/>
</LinearLayout>

Copyright © Linux教程網 All Rights Reserved