基本屬性
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;
}
}