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并返回

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReady

打开AS有时会报这个错,之前没怎么在意,因为完全没影响,但是看起来标红就很难受,总觉得认真有强迫症的程序员才是好的程序员,所以特意查了解决办法,也很简单,就点击Files----->Invalidate and…

java数组有跨类建立对象_必会的 55 个 Java 性能优化细节!一网打尽!

程序员的成长之路互联网/程序员/成长/职场 关注阅读本文大概需要 10 分钟。来源:https://yq.aliyun.com/articles/662001在 Java 程序中,性能问题的大部分原因并不在于 Java 语言,而是程序本身。养成良好的编码习惯非常重要,能够显…

android平板截屏方法,Android 各种截屏方法

1 应用内截屏(无SurfaceView, TextureView)boolean cacheEnable captureView.isDrawingCacheEnabled();captureView.setDrawingCacheEnabled(true);captureView.buildDrawingCache();Bitmap bitmap captureView.getDrawingCache();cache[0] Bitmap.createBitmap(bitmap);cap…

android string 去掉斜杠,Android – PATH中的改装和斜杠字符

我正在面临一个与Retrofit的问题,并希望找到一个合适的答案,作为唯一的方式,我可以想到它是相当丑陋和不实际.Retrofit PATH注释在开始时需要一个“/”(你可以从这个从库中提取的代码中读取:/** Loads {link #requestUrl},{link #requestUrlParamNames},and {link #…

新手操作HTML

一、 首先得学会使用HTML5-API手册,因为HTML的属性有很多很多,如果将这些属性全部记下来的话得不偿失,需要花费大量的时间和经历,因此我们需要学会使用这个帮主文档才能全面而深入的了解HTML; 就像你去找对象一样&am…

nginx 判断手机端跳转_nginx基本功能和工作原理

nginx能做什么反向代理正向代理负载均衡HTTP服务器(包含动静分离)反向代理和正向代理1.正向代理简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内…

Node.js教程-express框架

概述 Express是基于Node.js平台(建立在Node.js内置的http模块上),快速、开放、极简的Web开发框架。 中文官网 http://www.expressjs.com.cn/。 Github地址:https://github.com/orgs/expressjs。 Express核心特性: 可设置中间件来响应 HTTP…

android开发适配深色模式,手机不支持深色模式,如何用软件解决深色模式的问题?(附有系统全局深色模式实现方法...

本帖最后由 巷子口的你 于 2020-8-8 07:57 编辑1.92允许通过设置为助手应用来饮捷切频深色模式(设置入口一般为系统默认应用-助手和语音输人, MIU需要设置为语音助手)提醒:稳定模式一股不用开启, OPPO等设备开启深色模式后自动关团的才需要开启,据反馈,部分OPPO设备在锁屏后还是…

python猜数字游戏续_python3实现猜数字游戏

本文实例为大家分享了python3实现猜数字游戏的具体代码,供大家参考,具体内容如下 需求目标: 需求:猜数字游戏 1: 开始游戏产生一个1~100随机数 2: 用户输入,游戏根据输入值提示大或者小 3: 用户根据提示继续输入,知道猜…

HTML的script标签

在 HTML 页面中插入一段 JavaScript: 这句话可能大家一开始根本不了解JavaScript,是什么? 在我的了解中JavaScript并不是用java语言开发的,人家用的是c语言和另外一种语言的结合体,就像印度和印度尼西亚根本不是同一…

织梦cms在线生成html,织梦CMS标签生成器

标题 / 关键词 / 描述title / keywords / description{dede:field.title/} - {dede:global.cfg_webname/}获取顶级栏目相关信息gettoptype(me,typename){dede:field.typeid functiongettoptype(me,typename)/}获取上级栏目相关信息getredtype(me,typename){dede:field.typeid f…

tesseract4.0.0 中文语言包_一份TensorFlow2.0中文教程

近两个月,网上已经出现了大量 TensorFlow 2 0 英文教程。在此文章中,本文为大家推荐一个持续更新的中文教程,以便大家学习。来源:机器之心今年 3 月份,谷歌在 Tensorflow Developer Summit 2019 大会上发布 TensorFlow…

HTML的块级元素和行级元素的标签列表

行内元素列表: <a>标签可定义锚点 <abbr>表示一个缩写形式 <acronym>定义只取首字母缩写 <b>字体加粗 <bdo>可覆盖默认的文本方向 <big>大号字体加粗 <br>换行符号 <cite>引用进行定义 <code>定义计算机代码文…

android光传感实现摩斯密码,根据莫尔斯代码 - Android的闪烁闪光。 如何避免ANR次数由于睡觉? (火炬APP)...

所以&#xff0c;我做了一个火把应用...正常火炬功能完全正常&#xff0c;没有任何问题。下面介绍以下功能&#xff0c;可能会导致可能的ANR的说&#xff0c;我想通过闪烁的闪光灯发出SOS信息(莫尔斯电码)。 (其111-000-111)&#xff0c;所以它开 - 开 - 开 - 关 - 关 - 和重复…

mysql select count 5万条数据很慢_mysql亿级数据数据库优化方案测试银行交易流水记录的查询...

点击上方△蓝字关注我们带你征服编程和泡妞两座大山对MySQL的性能和亿级数据的处理方法思考&#xff0c;以及分库分表到底该如何做&#xff0c;在什么场景比较合适&#xff1f;比如银行交易流水记录的查询限盐少许&#xff0c;上实际实验过程&#xff0c;以下是在实验的过程中做…

HTML的引用

<q></q>定义比较短的引用&#xff0c;直接加双引号 <blockquote cite"来源的网址"</blockquote>浏览器用缩进的形式显示该段文本 HTML5强调&#xff1a;语义与现实分离&#xff08;意思是说写好的东西普普通通&#xff0c;但是可以通过另外的…

html中如何让图片交错,HTML5/Canvas 光圈交错幻觉

JavaScript语言&#xff1a;JaveScriptBabelCoffeeScript确定// RequestAnimationFrame shim by Paul Irishwindow.requestAnimFrame (function() {return window.requestAnimationFrame ||window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||function(…

jvm垃圾回收机制_干货|JVM垃圾回收机制

前言不同于C程序员必须自己完成内存的分配、使用和释放&#xff0c;JAVA语言提供了垃圾回收机制(GC&#xff0c;Garbage Collection)&#xff0c;所以JAVA程序员仅需要负责分配和使用内存即可&#xff0c;而释放内存则由GC负责。这样程序员就从讨厌的内存管理的工作中脱身了。本…

HTML的格式化应用

<del></del>在文本中增加删除线,但是是非错误的内容 <ins></ins>在文本中增加下划线表示插入的内容 通常del和ins成双出现(删除线和插入线) <s></s>也是在文本中增加删除线&#xff0c;但是是错误的内容需要删除 <u></u>在…

html td装满图片,HTML:桌子上的Td不满

我使用引导程序并创建标题固定表和滚动高度。我想制作一张桌子&#xff0c;其中td将随着屏幕尺寸扩展。我在哪里错了&#xff1f;当我使用IE dev工具分析整个内容时&#xff0c;我看到&#xff0c;如果td高度不包含数据&#xff0c;则td高度将略小于表格(***我不想在td中固定高…