有时需对已安装的应用进行管理 , 这里我简单的写了获取应用程序列表。

代码如下:

package com.lml.applicationtest;

import java.util.List;

import android.app.Activity;

import android.content.Context;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Matrix;

import android.graphics.PixelFormat;

import android.graphics.drawable.BitmapDrawable;

import android.graphics.drawable.Drawable;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.TextView;

public class MainActivity extends Activity {

private ListView lv;

private List pakageinfos;

private PackageManager pm;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

lv = (ListView) findViewById(R.id.list);

makeList();

}

private void makeList() {

pm = getPackageManager();

pakageinfos = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);

lv.setAdapter(new MyAdapter(this));

}

private class MyAdapter extends BaseAdapter {

private Context context;// 用于接收传递过来的Context对象

public MyAdapter(Context context) {

this.context = context;

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return pakageinfos.size();

}

@Override

public Object getItem(int arg0) {

// TODO Auto-generated method stub

return arg0;

}

@Override

public long getItemId(int arg0) {

// TODO Auto-generated method stub

return arg0;

}

@Override

public View getView(int arg0, View arg1, ViewGroup arg2) {

// TODO Auto-generated method stub

PackageInfo info = pakageinfos.get(arg0);

View view = View.inflate(context, R.layout.item, null);

Drawable drawable=info.applicationInfo.loadIcon(pm);

((ImageView) view.findViewById(R.id.iv)).setImageDrawable(zoomDrawable(drawable,50,50));

((TextView) view.findViewById(R.id.tv)).setText(info.applicationInfo.loadLabel(pm));

return view;

}

}

private Bitmap drawableToBitmap(Drawable drawable)// drawable 转换成bitmap

{

int width = drawable.getIntrinsicWidth(); // 取drawable的长宽

int height = drawable.getIntrinsicHeight();

Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888

: Bitmap.Config.RGB_565; // 取drawable的颜色格式

Bitmap bitmap = Bitmap.createBitmap(width, height, config); // 建立对应bitmap

Canvas canvas = new Canvas(bitmap); // 建立对应bitmap的画布

drawable.setBounds(0, 0, width, height);

drawable.draw(canvas); // 把drawable内容画到画布中

return bitmap;

}

private Drawable zoomDrawable(Drawable drawable, int w, int h)

{

int width = drawable.getIntrinsicWidth();

int height= drawable.getIntrinsicHeight();

Bitmap oldbmp = drawableToBitmap(drawable);// drawable转换成bitmap

Matrix matrix = new Matrix();   // 创建操作图片用的Matrix对象

float scaleWidth = ((float)w / width);   // 计算缩放比例

float scaleHeight = ((float)h / height);

matrix.postScale(scaleWidth, scaleHeight);         // 设置缩放比例

Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height, matrix, true);       // 建立新的bitmap,其内容是对原bitmap的缩放后的图

return new BitmapDrawable(getResources() ,newbmp);       // 把bitmap转换成drawable并返回

}

}

android 获取应用列表,获取全部应用列表相关推荐

  1. android SDK manager 无法获取更新版本列表【转载】

    http://mirrors.neusoft.edu.cn/eclipse/releases/luna/ 打开这个网址就可以看到adt的详细信息:  http://developer.android. ...

  2. android之网络请求 -- 获取RecyclerView的列表项(图片 + 文字)

    android之网络请求 -- 获取RecyclerView的列表项 示意图,网络请求的地址,插件及依赖 代码架构 代码内容 MainActivity.java activity_main.xml R ...

  3. android时间同步服务ipv6,Android O : DNS列表获取及IPv4/IPv6优先级修改

    一.Android应用获取有线网络DNS列表 /*** 获取DNS列表*/ private ListgetDnsList() { List dnsList = newArrayList();if (t ...

  4. android 扫描所有图片格式,Android获取本机各种类型文件列表(音乐、视频、图片、文档等)...

    介绍 本篇介绍Android获取本机各种类型文件的方法,已经封装成工具类,末尾有源码下载地址. 提示 获取音乐.视频.图片.文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文 ...

  5. Android 源码 Camera2 获取 CameraId 列表

    获取 CameraId 列表通过调用 CameraManager 类 getCameraIdList() 实现. getCameraIdList() 按标识符返回当前连接的摄像头设备列表,包括其他 c ...

  6. android 如何获得附近的wifi,Android细节:扫描获取附近wifi,并以列表形式进行展示...

    前一阵子应用中有一个获取附近wifi,并以列表形式进行展示的需求.这个需求很容易满足,核心代码如下: WifiManager wifiManager = (WifiManager) getSystem ...

  7. ios wifi 定位_iOS开发Wifi 定位原理及iOS Wifi 列表获取

    释放双眼,带上耳机,听听看~! 对于大家来说,Wifi 应该是一个很熟悉的词了,我们每天都可能在使用 Wifi 热点.Wifi 除了能给我们提供热点之外同时还有定位的作用, 现在移动设备的对用户的隐私 ...

  8. 微信公众号中 JavaScript 获取用户周边的标志性建筑列表

    微信公众号中 JavaScript 获取用户周边的标志性建筑列表 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致& ...

  9. ios实现wifi搜索连接_Wifi 定位原理及 iOS Wifi 列表获取

    Wifi 定位原理及 iOS Wifi 列表获取 对于大家来说,Wifi 应该是一个很熟悉的词了,我们每天都可能在使用 Wifi 热点.Wifi 除了能给我们提供热点之外同时还有定位的作用, 现在移动 ...

  10. java 读取手机文件_Android获取手机文件夹及文件列表的方法

    先看看效果图: package wuwang.tools.utils; import java.io.File; import java.io.FileInputStream; import java ...

最新文章

  1. 《Spring攻略(第2版)》——1.5 指定Bean引用
  2. JQuery在循环中绑定事件的问题详解
  3. [myeclipse] 官方中文网站
  4. at24c16如何划分出多个读写区_AVR学习笔记九、基于AT24C16的数据存储实验
  5. 【数字电子技术课程设计】多功能数字电子钟的设计
  6. CAD学习笔记中级课【参数化】
  7. mapper.xml中注释问题
  8. 好看的登录html界面,很漂亮的用户登录界面HTML模板
  9. java实现ftp文件夹增量上传下载
  10. java delayqueue_java中DelayQueue的使用
  11. L1-009 N个数求和 (20 分)(C语言)(测试点3和测试点5)
  12. 一杯苦咖啡 公司来了个漂亮女实习程序员
  13. OpenCL Function Qualifiers (函数限定符)
  14. 批量提取文件夹下同类型文件/批量提取文件夹下不同名称文件夹的同类型文件
  15. Flutter学习之Dart语言基础(内置类型)
  16. 拿什么拯救你,我的理财收益率
  17. 《冲动的惩罚》歌词分析
  18. 用stitching_detailed拼接图片失败,原因分析(待补充)
  19. div水平垂直居中问题以及解决方法的兼容性
  20. python tan,Python3 tan() 函数

热门文章

  1. 关于直播,所有的技术细节都在这里了(2)《转载》
  2. [HTML]HTML5实现可编辑表格
  3. MySQL 授权远程登录(Ubuntu 环境)
  4. php中的html元素
  5. PHP 魔术方法__set() __get() 方法详解
  6. 新建WindowsPhone项目时提示未将对象引用设置到对象的实例
  7. 流式处理和批处理的区别
  8. java spring boot 注解验证_如何理解Java原生注解和Spring 各种注解?
  9. vs2013配置opencv2.4.9后出现找不到opencv_core249d.dll和opencv_highgui249d.dll问题
  10. python向CSV文件写内容