Android笔记之GridView
完整Demo链接:https://pan.baidu.com/s/1d_G9aCwBxpiYQcdQhwSDDw,提取码:5deh
效果图
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gvMovie"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:horizontalSpacing="2dp"
android:numColumns="2"
android:verticalSpacing="2dp" />
MainActivity.java
package com.bu_ish.grid_view_demo; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity {
private GridView gvMovie; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gvMovie = findViewById(R.id.gvMovie);
ArrayList<Movie> movies = new ArrayList<>();
movies.add(new Movie("刀", "https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=0bdb508d4c90f60310bd9415587bd87e/ac345982b2b7d0a28dadd821cdef76094b369a22.jpg", "赵文卓"));
movies.add(new Movie("破坏之王", "https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike150%2C5%2C5%2C150%2C50/sign=9bf1fbb98f5494ee932f074b4c9c8b9b/241f95cad1c8a786a13830086409c93d70cf50a1.jpg", "周星驰"));
movies.add(new Movie("第一滴血3", "https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=1f2bd403df1373f0e13267cdc566209e/d52a2834349b033b95ddb0a21bce36d3d539bd75.jpg", "史泰龙"));
movies.add(new Movie("杀手之王", "https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=526d4c9c337adab429dd1311eabdd879/adaf2edda3cc7cd92764cb6d3c01213fb80e913d.jpg", "李连杰"));
movies.add(new Movie("我是谁", "https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=1944c477cfea15ce55e3e85bd7695196/7e3e6709c93d70cf21b800fffedcd100bba12b85.jpg", "成龙"));
gvMovie.setAdapter(new MovieGridViewAdapter(this, movies));
}
}
item_movie.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="300dp"> <ImageView
android:id="@+id/ivThumbnail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
tools:src="@mipmap/ic_launcher" /> <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:layout_marginBottom="20dp"
android:gravity="center"
android:orientation="vertical"> <TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/movie_text_view_background"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp"
android:textColor="@android:color/white"
tools:text="断刀客" /> <TextView
android:id="@+id/tvStarring"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/movie_text_view_background"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp"
android:textColor="@android:color/white"
tools:text="主演:赵文卓" />
</LinearLayout>
</FrameLayout>
movie_text_view_background.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#55000000" />
<corners android:radius="5dp" />
</shape>
MovieGridViewAdapter.java
package com.bu_ish.grid_view_demo; import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView; import com.bumptech.glide.Glide; import java.util.List; public class MovieGridViewAdapter extends BaseAdapter {
private Context context;
private List<Movie> movies; public MovieGridViewAdapter(Context context, List<Movie> movies) {
this.context = context;
this.movies = movies;
} @Override
public int getCount() {
return movies.size();
} @Override
public Movie getItem(int position) {
return movies.get(position);
} @Override
public long getItemId(int position) {
return 0;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_movie, parent, false);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Movie movie = movies.get(position);
Glide.with(context).load(movie.getThumbnail()).into(viewHolder.ivThumbnail);
viewHolder.tvName.setText(movie.getName());
viewHolder.tvStarring.setText(movie.getStarring());
return convertView;
} private class ViewHolder {
private ImageView ivThumbnail;
private TextView tvName, tvStarring; public ViewHolder(View itemView) {
ivThumbnail = itemView.findViewById(R.id.ivThumbnail);
tvName = itemView.findViewById(R.id.tvName);
tvStarring = itemView.findViewById(R.id.tvStarring);
}
}
}
Android笔记之GridView的更多相关文章
- Android学习笔记之GridView的使用具体解释
(1)创建布局代码例如以下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&quo ...
- Android笔记(二十二) Android中的GridView
GridView和ListView一样,是Android中比较常见的布局控件,譬如我们的手机桌面其实就是一个GridView. 效果: 实现过程和ListView类似,也是通过Adapter将数据源展 ...
- Android 网格视图GridView的使用
网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现. 本文将以一个具体的实例来说明如何使用GridV ...
- Android listview和gridview以及view的区别
GridView 可以指定显示的条目的列数. listview一般显示的条目的列数都是一列 如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView andr ...
- Android中使用GridView和ImageViewSwitcher实现电子相册简单功能
我们在手机上查看相册时,首先看到的是网格状的图片展示界面,然后我们选择想要欣赏的照片点击进入,这样就可以全屏观看该照片,并且可以通过左右滑动来切换照片.如下图的显示效果: 首先我们先罗列一下本次实现所 ...
- Android控件Gridview实现仿支付宝首页,Fragment底部按钮切换和登录圆形头像
此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...
- Android网格视图(GridView)
GridView的一些属性: 1.android:numColumns=”auto_fit” //GridView的列数设置为自动,也可以设置成2.3.4…… 2.android:columnWi ...
- Android笔记——Android中数据的存储方式(二)
我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...
- Android入门之GridView(表格控件)
GridView是一个表格控件,可以在每个单元格中显示自定义的View或者字符串.在这里我们要实现一个图标下方有文字的效果. 1.首先我们应自定义布局文件image_text.xml.代码如下: &l ...
随机推荐
- Spring3的quartz定时任务
要使用定时任务,需要将quartz-1.5.2.jar加入lib,没有的话可以从下面地址下载: quartz-1.5.2.jar 有了这个再做个配置文件appctx-quartz.xml: <? ...
- PHP奇偶行不同显示不同的背景
有时数据成表格状 为了更加美观会将奇偶行显示不同的背景色. 实现代码: <foreach name="list" item="v" key='k'> ...
- Linux 下Office 软件名称
Linux 下Office 软件名称
- cpu、内存、硬盘
grep -c 'model name' /proc/cpuinfo
- ListView知识点汇总(9.2)
1 最为基础的listview: http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html http://blog.csdn.net/h ...
- 工作总结 npoi 模板 导出公式 excel
Apache POI(5):公式(formula) Apache POI(5):公式(formula) 2016年08月01日 17:44:49 阅读数:1145 package com.hthk ...
- Python--多进程--01
multiprocess import multiprocessing import time def worker_1(interval): print(' i am worker1') n=5 w ...
- oracle查询当前会话数量
SELECT a.inst_id,sid,username,event,sql_id,a.PROGRAM FROM gv$session a WHERE a.STATUS='ACTIVE' AND u ...
- NPOI 添加下拉列表
需求 给指定列添加下拉列表.如下图: 思路 NPOI的文档网站不能访问了,这里参考的POI文档. 加下拉列表有两种方式,一种直接写字符串,例如 new String[]{"10", ...
- 安装SQLserver 2014(For AlwaysOn)
SQLserver 2014 AlwaysOn在SQLserver 2012的基础之上,进行了非常大程度的添加.如能够通过"加入 Azure 副本向导"简化了用于 AlwaysOn ...