`
l540151663
  • 浏览: 185369 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

获取全部应用列表

阅读更多
有时需对已安装的应用进行管理 , 这里我简单的写了获取应用程序列表。
代码如下:
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<PackageInfo> 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开发中,获取应用列表是一项常见的任务,它涉及到对系统API的调用以及数据的展示。本篇文章将深入探讨如何实现这一功能,并结合MVC(Model-View-Controller)设计模式来阐述整个过程。 首先,我们需要理解...

    android获取应用程序的权限列表

    本文将详细讲解如何在Android系统中获取应用程序的权限列表,并针对日志记录中使用的"jishen" TAG进行讨论。 1. **权限模型概述** Android的权限模型基于声明式权限,开发者在应用的AndroidManifest.xml文件中声明...

    AppManager_Android获取手机里所安装的应用列表.rar

    2. 使用`getInstalledPackages(int flags)`方法获取应用列表。`flags`参数可以用来过滤系统应用或其他类型的应用,例如: ```java List&lt;ApplicationInfo&gt; installedApps = packageManager.getInstalled...

    获取app信息列表

    首先,Android系统提供了`PackageManager`类,它是获取应用程序信息的主要入口。通过这个类,开发者可以获取到设备上所有已安装应用的详细信息,包括应用的名称、图标、版本信息、权限等。下面是一段基本的代码示例...

    Android中获取应用程序列表信息

    在Android系统中,获取应用程序列表信息是开发过程中常见的需求,比如构建应用管理界面或实现某些特定功能。以下将详细介绍如何通过编程方式实现这四个主要目标: 1. **Android中获取所有应用程序列表信息** 要...

    Android中获取后台正在运行的应用列表

    在Android设备中,按Back键会将当前的Activity出栈销毁,而按HOME键却会将之隐藏到后台。如若有多个这样的程序这样操作,我们不知道后台到底有多少个正在运行的应用...此程序的目的就列举出后台正在运行的应用列表。

    获取手机安装的所有应用列表

    在实际应用中,还可以根据需要添加更多功能,比如获取应用图标、启动应用、检查更新等。对于开发者而言,理解并熟练运用`PackageManager`是构建功能丰富、用户体验良好的Android应用必不可少的技能。

    PackageManager获取安装的应用列表

    `PackageManager`还提供了其他功能,例如查询特定应用的信息(`getPackageInfo(String packageName, int flags)`)、检查应用是否已安装(`resolveActivity(Intent intent, int flags)`)以及获取应用的权限列表(`...

    android原生开发,获取手机应用列表

    原生获取手机应用列表,代码亲测!

    应用列表以及权限列表

    对于非root用户,我们可以通过Content Provider来获取应用列表。Android提供了`PackageManager`类,它允许开发者查询和管理设备上的应用程序。以下是一个简单的示例代码,展示如何获取已安装的应用程序列表: ```...

    Android中获取所有应用程序信息

    下面将详细讲解如何通过`queryIntentActivities()`方法获取应用信息。 首先,我们需要创建一个`Intent`对象,用于定义我们想要查询的类型。通常,我们可以使用`Intent.ACTION_MAIN`和`Intent.CATEGORY_LAUNCHER`来...

    android 获取已下载的应用列表

    `PackageManager`是Android系统提供用于获取应用包信息的接口。下面是一个示例代码,展示如何获取已下载应用的列表: ```java // 获取PackageManager实例 PackageManager packageManager = context....

    获取本应用和全部app缓存以及清理全解

    - 自动清理:可以编写一个简单的Android应用,获取应用列表并遍历,调用`Context.deleteDatabase()`或`Context.deleteCacheDir()`方法清理缓存。 2. **iOS系统**: - 用户界面:通过设置 &gt; 通用 &gt; iPhone 存储,...

    获取所有应用程序的数据

    在Android系统中,获取所有应用程序的数据是一个常见的需求,这通常涉及到获取用户安装的应用列表以及它们的相关信息,如图标、名称、包名等。在提供的代码段中,我们看到一个名为`getLaunchAppList`的方法,它实现...

    Android获取应用程序列表 优化后

    - 异步处理:由于获取应用列表可能会涉及I/O操作,因此建议在后台线程执行,避免阻塞UI。 - 缓存结果:如果频繁请求应用列表,可以考虑缓存结果,减少不必要的系统调用。 - 权限控制:如果只需要用户应用,不需要...

    Android获取分享应用列表详解及实例

    Android获取分享应用列表详解及实例 Android获取分享应用列表详解及实例是指在Android系统中获取当前设备中所有支持分享的应用列表,并且实现对应的分享功能的过程。下面将详细介绍Android获取分享应用列表详解及...

    获取Android所有应用程序列表,点击某一项时可启动相应应用

    接下来,我们讲解如何获取所有应用列表。在Android中,我们可以使用`PackageManager`类来获取系统中所有安装的应用信息。以下是一个简单的示例: ```java PackageManager packageManager = getApplicationContext()...

    获取手机所有应用信息

    在Android和iOS等移动操作系统中,获取手机所有...在实际开发中,还需要注意权限请求,特别是在Android 6.0及以上版本,可能需要动态请求权限来获取应用信息。同时,了解并遵守各平台的隐私政策,确保应用的合规性。

Global site tag (gtag.js) - Google Analytics