日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 获取应用列表,获取全部应用列表

發布時間:2024/7/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 获取应用列表,获取全部应用列表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。