基本属性
numColumns=”auto_fit”列数根据屏幕大小自动适应
verticalSpacing=”“垂直方向的间距
stretchMode=”columnWidth|spacingWidth”
把最左边和右边的空白分出去: 第一个分给视图 第二个分给界面空白处
获取安装列表
//这个是最后获取的实体类list
List<AppInfo>appInfoList=new ArrayList<AppInfo>();
//用包管理器处理
PackageManager packageManager = getPackageManager();
//用包管理器的方法参数tag="0"直接拿到list 其中PcakageInfo是系统自带的
List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
for(int i=0;i<installedPackages.size();i++)
{
PackageInfo packageInfo = installedPackages.get(i);
AppInfo appInfo=new AppInfo();
//PackageInfo转换为自己的类
appInfo.setAppName(packageInfo.applicationInfo.loadLabel(packageManager).toString());
appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(packageManager));
appInfo.setPackageName(packageInfo.packageName);
appInfo.setVersionCode(packageInfo.versionCode);
appInfo.setVersionName(packageInfo.versionName);
//过滤掉系统自带的应用
if((packageInfo.applicationInfo.flags& ApplicationInfo.FLAG_SYSTEM)==0)
{
appInfoList.add(appInfo);
}
}
适配器
ViewHolder holder;
if(convertView==null)
{
convertView=View.inflate(context, R.layout.item_gridview2,null);
holder=new ViewHolder();
holder.img_appIcon= (ImageView) convertView.findViewById(R.id.img_appIcon);
holder.tv_appName= (TextView) convertView.findViewById(R.id.tv_appName);
convertView.setTag(holder);
}
else
{
holder= (ViewHolder) convertView.getTag();
}
AppInfo appInfo=appInfoList.get(position);
holder.img_appIcon.setImageDrawable(appInfo.getAppIcon());
holder.tv_appName.setText(appInfo.getAppName()+" "+appInfo.getVersionName());
完整代码
public class GridAdapter2 extends BaseAdapter {
private Context context;
private List<AppInfo>appInfoList;
public GridAdapter2(Context context, List<AppInfo> appInfoList)
{
this.appInfoList=appInfoList;
this.context=context;
}
@Override
public int getCount() {
return appInfoList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null)
{
convertView=View.inflate(context, R.layout.item_gridview2,null);
holder=new ViewHolder();
holder.img_appIcon= (ImageView) convertView.findViewById(R.id.img_appIcon);
holder.tv_appName= (TextView) convertView.findViewById(R.id.tv_appName);
convertView.setTag(holder);
}
else
{
holder= (ViewHolder) convertView.getTag();
}
AppInfo appInfo=appInfoList.get(position);
holder.img_appIcon.setImageDrawable(appInfo.getAppIcon());
holder.tv_appName.setText(appInfo.getAppName()+" "+appInfo.getVersionName());
return convertView;
}
public class ViewHolder
{
ImageView img_appIcon;
TextView tv_appName;
}
}