zoukankan      html  css  js  c++  java
  • GridView使用

    效果图 : 

    常见属性 :

    android:numColumns="auto_fit"     //GridView的列数设置为自动
    android:columnWidth="90dp"        //每列的宽度,也就是Item的宽度
    android:stretchMode="columnWidth" //缩放与列宽大小同步
    android:verticalSpacing="10dp"    //两行之间的边距,如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dp
    android:horizontalSpacing="10dp"  //两列之间的边距。

    第一步: 布局文件

    main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"  
        android:id="@+id/gridview"
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"
        android:columnWidth="90dp"
        android:numColumns="auto_fit"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:stretchMode="columnWidth"
        android:gravity="center"
    />

    第二步  主界面

    public class MainActivity extends Activity { 
        private GridView gridView; 
        //图片的文字标题 
        private String[] titles = new String[] 
        { "pic1", "pic2", "pic3", "pic4", "pic5", "pic6", "pic7", "pic8", "pic9"}; 
        //图片ID数组 
        private int[] images = new int[]{        
                R.drawable.pic1, R.drawable.pic2, R.drawable.pic3,  
                R.drawable.pic4, R.drawable.pic5, R.drawable.pic6,  
                R.drawable.pic7, R.drawable.pic8,R.drawable.pic9  
        }; 
     
        @Override
        public void onCreate(Bundle savedInstanceState){ 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 
            gridView = (GridView) findViewById(R.id.gridview); 
            PictureAdapter adapter = new PictureAdapter(titles, images, this); 
            gridView.setAdapter(adapter); 
     
            gridView.setOnItemClickListener(new OnItemClickListener() 
                { 
                    public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
                    { 
                        Toast.makeText(MainActivity.this, "pic" + (position+1), Toast.LENGTH_SHORT).show(); 
                    } 
                }); 
        } 
    } 
    PictureAdapter.java
    //自定义适配器 
    class PictureAdapter extends BaseAdapter{ 
        private LayoutInflater inflater; 
        private List<Picture> pictures; 
     
        public PictureAdapter(String[] titles, int[] images, Context context) 
        { 
            super(); 
            pictures = new ArrayList<Picture>(); 
            inflater = LayoutInflater.from(context); 
            for (int i = 0; i < images.length; i++) 
            { 
                Picture picture = new Picture(titles[i], images[i]); 
                pictures.add(picture); 
            } 
        } 
     
        @Override
        public int getCount() 
        { 
            if (null != pictures) 
            { 
                return pictures.size(); 
            } else
            { 
                return 0; 
            } 
        } 
     
        @Override
        public Object getItem(int position) 
        { 
            return pictures.get(position); 
        } 
     
        @Override
        public long getItemId(int position) 
        { 
            return position; 
        } 
     
        @Override
        public View getView(int position, View convertView, ViewGroup parent) { 
            ViewHolder viewHolder; 
            if (convertView == null)  { 
                convertView = inflater.inflate(R.layout.picture_item, null); 
                viewHolder = new ViewHolder(); 
                viewHolder.title = (TextView) convertView.findViewById(R.id.title); 
                viewHolder.image = (ImageView) convertView.findViewById(R.id.image); 
                convertView.setTag(viewHolder); 
            } else
            { 
                viewHolder = (ViewHolder) convertView.getTag(); 
            } 
            viewHolder.title.setText(pictures.get(position).getTitle()); 
            viewHolder.image.setImageResource(pictures.get(position).getImageId()); 
            return convertView; 
        } 
        class ViewHolder { 
            public TextView title; 
            public ImageView image; 
        } 
    } 
     class   Picture { 
        private String title; 
        private int imageId; 
    } 

    picture_item.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/root"
        android:orientation="vertical"  
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"  
        android:layout_marginTop="5dp"
        >
        <ImageView  
            android:id="@+id/image"
            android:layout_width="100dp"
            android:layout_height="150dp"  
            android:layout_gravity="center"
            android:scaleType="fitXY"
            android:padding="4dp"
           />
        <TextView  
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  
            android:layout_gravity="center"
            android:gravity="center_horizontal"
            />
    </LinearLayout>
  • 相关阅读:
    Spring Boot 详细简介
    Linux 安装 MySQL 8 数据库(图文详细教程)
    有了这个日期工具类,让日期转化不再烦恼
    Linux常用实用命令
    Java分割中英文,并且中文不能分割一半?
    Spring MVC或Spring Boot配置默认访问页面不生效?
    js如何判断当前页面是否处于激活状态
    博客园 & 陌上花开HIMMR | 脱单倒计时!只能帮你到这了
    博客园 & 陌上花开HIMMR | 距2020年脱单,只剩34天!
    博客园 & 陌上花开HIMMR | 脱单倒计时!刚过完10.24的你,还想一个人过11.11吗?
  • 原文地址:https://www.cnblogs.com/java-g/p/4170686.html
Copyright © 2011-2022 走看看