GridViewDemo:网格示例

GridView标签内定义列宽,android:columnWidth="120dp"。

getView()内定义每一个ImageView的大小(115, 115),setScaleType设置图片显示的方式。

  1. imageView.setLayoutParams(new GridView.LayoutParams(115, 115));
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
  1. package com.example.shad_fnst.gridviewdemo;
  2.  
  3. import android.app.Activity;
  4. import android.support.v7.app.ActionBarActivity;
  5. import android.os.Bundle;
  6. import android.view.Menu;
  7. import android.view.MenuItem;
  8. import android.widget.GridView;
  9.  
  10. public class MainActivity extends Activity {
  11.  
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16.  
  17. GridView gridView = (GridView) findViewById(R.id.gridview);
  18. gridView.setAdapter(new ImageAdapter(this));
  19. }
  20.  
  21. @Override
  22. public boolean onCreateOptionsMenu(Menu menu) {
  23. // Inflate the menu; this adds items to the action bar if it is present.
  24. getMenuInflater().inflate(R.menu.menu_main, menu);
  25. return true;
  26. }
  27.  
  28. @Override
  29. public boolean onOptionsItemSelected(MenuItem item) {
  30. // Handle action bar item clicks here. The action bar will
  31. // automatically handle clicks on the Home/Up button, so long
  32. // as you specify a parent activity in AndroidManifest.xml.
  33. int id = item.getItemId();
  34.  
  35. //noinspection SimplifiableIfStatement
  36. if (id == R.id.action_settings) {
  37. return true;
  38. }
  39.  
  40. return super.onOptionsItemSelected(item);
  41. }
  42. }

MainActivity.java

  1. package com.example.shad_fnst.gridviewdemo;
  2.  
  3. import android.content.Context;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.BaseAdapter;
  7. import android.widget.GridView;
  8. import android.widget.ImageView;
  9.  
  10. import java.util.Objects;
  11.  
  12. /**
  13. * Created by shad-fnst on 2015/08/04.
  14. */
  15. public class ImageAdapter extends BaseAdapter {
  16. private Context mContext;
  17.  
  18. //keep all Images in array
  19. public Integer[] mThumbIds = {
  20. R.drawable.sample2, R.drawable.sample3,
  21. R.drawable.sample4, R.drawable.sample5,
  22. R.drawable.sample6, R.drawable.sample7,
  23. R.drawable.sample0, R.drawable.sample1,
  24. R.drawable.sample2, R.drawable.sample3,
  25. R.drawable.sample4, R.drawable.sample5,
  26. R.drawable.sample6, R.drawable.sample7,
  27. R.drawable.sample0, R.drawable.sample1,
  28. R.drawable.sample2, R.drawable.sample3,
  29. R.drawable.sample4, R.drawable.sample5,
  30. R.drawable.sample6, R.drawable.sample7,
  31. };
  32.  
  33. //Constructor
  34. public ImageAdapter(Context context){
  35. mContext = context;
  36. }
  37.  
  38. public int getCount(){
  39. return mThumbIds.length;
  40. }
  41.  
  42. public Object getItem(int position){
  43. return null;
  44. }
  45.  
  46. public long getItemId(int position){
  47. return 0;
  48. }
  49.  
  50. //create a new ImageView for each item referenced by the Adapter
  51. public View getView(int position, View convertView, ViewGroup parent){
  52. ImageView imageView;
  53. if(convertView == null){
  54. imageView = new ImageView(mContext);
  55. imageView.setLayoutParams(new GridView.LayoutParams(115, 115));
  56. imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
  57. imageView.setPadding(8, 8, 8, 8);
  58. }else{
  59. imageView =(ImageView) convertView;
  60. }
  61.  
  62. imageView.setImageResource(mThumbIds[position]);
  63. return imageView;
  64. }
  65. }

ImageAdapter.java

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <GridView xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:paddingLeft="@dimen/activity_horizontal_margin"
  6. android:paddingRight="@dimen/activity_horizontal_margin"
  7. android:paddingTop="@dimen/activity_vertical_margin"
  8. android:paddingBottom="@dimen/activity_vertical_margin"
  9. android:id="@+id/gridview"
  10. android:columnWidth="120dp"
  11. android:numColumns="auto_fit"
  12. android:verticalSpacing="10dp"
  13. android:horizontalSpacing="10dp"
  14. android:stretchMode="columnWidth"
  15. android:gravity="center">
  16. </GridView>

activity_main.xml

GridViewDemo的更多相关文章

  1. Android中GridView通过自定义适配器(未优化)实现图文视图排列

    Android中GridView组件用来以网格方式排列视图,与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要显示时,可以使用该组件.下面我们通过代码实现如下图例(为了方便截图,将事件处理(土 ...

  2. 如何将GridViewEX升级到UWP(Universal Windows Platform)平台

    引言 上一篇文章中,我们主要讲解了如何在保证GridView控件的用户体验基础上,扩展GridView生成GridViewEx控件,增加动态添加新分组功能等,本文在上文的基础上,介绍如何在Window ...

  3. Android(java)学习笔记154:使用GridView以及重写BaseAdapter

    1.BaseAdapter: 对于ListView.GridView.Gallery.Spinner等等,它是它们的适配器,直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方 ...

  4. Android_gridVIew

    xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...

  5. AndroidUI的组成部分GridView

    java 代码例如以下(简单的知识点我会以凝视的形式解说): package com.gc.gridviewdemo; /** * @author Android将军 */ /** * 知识点解说: ...

  6. Android--UI之GridView

    前言 这篇博客介绍一下Android平台下,GridView控件的开发.针对GridView控件的一些常用属性.方法,以及注意事项进行讲解,最后将以一个Demo展示GridView控件的使用. Gri ...

  7. 背水一战 Windows 10 (58) - 控件(集合类): ListViewBase - ListView, GridView

    [源码下载] 背水一战 Windows 10 (58) - 控件(集合类): ListViewBase - ListView, GridView 作者:webabcd 介绍背水一战 Windows 1 ...

  8. Android学习之——GridView

    背景知识 GridView在Android开发中和ListView一样经常被使用.如我们经常使用的快图浏览,里面就有将图片的布局改为网格(即GridView)的选项.还有约X神器——陌陌的搜索界也是用 ...

  9. Android(java)学习笔记97:使用GridView以及重写BaseAdapter

    1. BaseAdapter: 对于ListView.GridView.Gallery.Spinner等等,它是它们的适配器,直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多 ...

随机推荐

  1. Study notes for Clustering and K-means

    1. Clustering Analysis Clustering is the process of grouping a set of (unlabeled) data objects into ...

  2. sql注入在线检測(sqlmapapi)

    之前一搞渗透的同事问我.sqlmapapi.py是干啥的,我猜非常多人都玩过sqlmap,但玩过sqlmapapi的应该比較少,今天就和大家一起看看怎样使用以及一些美的地方. 说白了.sqlmapap ...

  3. PP常见数据表

    Table表    Short text短文本 AFFL    Work order sequence加工单顺序 AFFT    Order process instructions订单-流程指令 A ...

  4. cdoj 1131 男神的礼物 区间dp

    男神的礼物 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1131 Descr ...

  5. HDU 4286 Data Handler 双向链表/Splay

    Data Handler Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...

  6. 抛砖引玉:关于Android的ListView中CheckBox错乱

    首先:参考了这篇翻译的文章:http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html 文章中关于说的Android中的Recyc ...

  7. android中判断sim卡状态和读取联系人资料的方法

    在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. Pho ...

  8. 网络编程之PC版与Android手机版带断点续传的多线程下载

    一.多线程下载         多线程下载就是抢占服务器资源         原理:服务器CPU 分配给每条线程的时间片相同,服务器带宽平均分配给每条线程,所以客户端开启的线程越多,就能抢占到更多的服 ...

  9. ios开发——错误总结篇&开发中常见错误和警告总结(四)

    ios开发——开发总结&开发中常见错误和警告总结(四) 网易彩票实战总结(错误) 错误总结之类的实现 经典错误之重复定义与导入错误 经典错误关于父类的实现 通知对象: 控制器的定义 Xcode ...

  10. 在C++中使用golang的协程

    开源项目cpp_features提供了一个仿golang协程的stackful协程库. 可以在c++中使用golang的协程,大概语法是这样的: #include <iostream> v ...