android 获取应用列表,获取全部应用列表
有时需对已安装的应用进行管理 , 这里我简单的写了获取应用程序列表。
代码如下:
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 获取应用列表,获取全部应用列表相关推荐
- android SDK manager 无法获取更新版本列表【转载】
http://mirrors.neusoft.edu.cn/eclipse/releases/luna/ 打开这个网址就可以看到adt的详细信息: http://developer.android. ...
- android之网络请求 -- 获取RecyclerView的列表项(图片 + 文字)
android之网络请求 -- 获取RecyclerView的列表项 示意图,网络请求的地址,插件及依赖 代码架构 代码内容 MainActivity.java activity_main.xml R ...
- android时间同步服务ipv6,Android O : DNS列表获取及IPv4/IPv6优先级修改
一.Android应用获取有线网络DNS列表 /*** 获取DNS列表*/ private ListgetDnsList() { List dnsList = newArrayList();if (t ...
- android 扫描所有图片格式,Android获取本机各种类型文件列表(音乐、视频、图片、文档等)...
介绍 本篇介绍Android获取本机各种类型文件的方法,已经封装成工具类,末尾有源码下载地址. 提示 获取音乐.视频.图片.文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文 ...
- Android 源码 Camera2 获取 CameraId 列表
获取 CameraId 列表通过调用 CameraManager 类 getCameraIdList() 实现. getCameraIdList() 按标识符返回当前连接的摄像头设备列表,包括其他 c ...
- android 如何获得附近的wifi,Android细节:扫描获取附近wifi,并以列表形式进行展示...
前一阵子应用中有一个获取附近wifi,并以列表形式进行展示的需求.这个需求很容易满足,核心代码如下: WifiManager wifiManager = (WifiManager) getSystem ...
- ios wifi 定位_iOS开发Wifi 定位原理及iOS Wifi 列表获取
释放双眼,带上耳机,听听看~! 对于大家来说,Wifi 应该是一个很熟悉的词了,我们每天都可能在使用 Wifi 热点.Wifi 除了能给我们提供热点之外同时还有定位的作用, 现在移动设备的对用户的隐私 ...
- 微信公众号中 JavaScript 获取用户周边的标志性建筑列表
微信公众号中 JavaScript 获取用户周边的标志性建筑列表 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致& ...
- ios实现wifi搜索连接_Wifi 定位原理及 iOS Wifi 列表获取
Wifi 定位原理及 iOS Wifi 列表获取 对于大家来说,Wifi 应该是一个很熟悉的词了,我们每天都可能在使用 Wifi 热点.Wifi 除了能给我们提供热点之外同时还有定位的作用, 现在移动 ...
- java 读取手机文件_Android获取手机文件夹及文件列表的方法
先看看效果图: package wuwang.tools.utils; import java.io.File; import java.io.FileInputStream; import java ...
最新文章
- 《Spring攻略(第2版)》——1.5 指定Bean引用
- JQuery在循环中绑定事件的问题详解
- [myeclipse] 官方中文网站
- at24c16如何划分出多个读写区_AVR学习笔记九、基于AT24C16的数据存储实验
- 【数字电子技术课程设计】多功能数字电子钟的设计
- CAD学习笔记中级课【参数化】
- mapper.xml中注释问题
- 好看的登录html界面,很漂亮的用户登录界面HTML模板
- java实现ftp文件夹增量上传下载
- java delayqueue_java中DelayQueue的使用
- L1-009 N个数求和 (20 分)(C语言)(测试点3和测试点5)
- 一杯苦咖啡 公司来了个漂亮女实习程序员
- OpenCL Function Qualifiers (函数限定符)
- 批量提取文件夹下同类型文件/批量提取文件夹下不同名称文件夹的同类型文件
- Flutter学习之Dart语言基础(内置类型)
- 拿什么拯救你,我的理财收益率
- 《冲动的惩罚》歌词分析
- 用stitching_detailed拼接图片失败,原因分析(待补充)
- div水平垂直居中问题以及解决方法的兼容性
- python tan,Python3 tan() 函数
热门文章
- 关于直播,所有的技术细节都在这里了(2)《转载》
- [HTML]HTML5实现可编辑表格
- MySQL 授权远程登录(Ubuntu 环境)
- php中的html元素
- PHP 魔术方法__set() __get() 方法详解
- 新建WindowsPhone项目时提示未将对象引用设置到对象的实例
- 流式处理和批处理的区别
- java spring boot 注解验证_如何理解Java原生注解和Spring 各种注解?
- vs2013配置opencv2.4.9后出现找不到opencv_core249d.dll和opencv_highgui249d.dll问题
- python向CSV文件写内容