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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

android 图标点击变大,使android桌面图标变大

發布時間:2025/3/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 图标点击变大,使android桌面图标变大 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在平板上android系統默認的桌面圖標太小了,需要將其放大。之前在launcher中做了簡單的圖片放大,帶

來了圖標模糊的問題,重新研究源碼尋求解決辦法。

(1)解決思路是先找到應用程序的圖標等信息是怎么獲取的。這就需要學習PackageManager的相關源碼。

PackageManger類包含以下功能:

安裝,卸載應用

查詢permission相干信息

查詢Application相干信息(application,activity,receiver,service,provider及響應屬性等)從

AndroidManifest.xml獲取的這些的信息

查詢已安裝應用

增長,刪除permission

清除用戶數據、緩存,代碼段

可以通過getPackageManager()方法獲得。

此類是一個抽象類。它的實現過程可以參考http://blog.csdn.net/ljsbuct/article/details/6636433中的分析。

PackageItemInfo類

說明: AndroidManifest.xml文件中所有節點的基類,提供了這些節點的基本信息:a label、icon、 meta-data。

常用字段:

public int icon ?獲得該資源圖片在R文件中的值 (對應于android:icon屬性)

public int labelRes 獲得該label在R文件中的值(對應于android:label屬性)

public String name ? 獲得該節點的name值 (對應于android:name屬性)

public String packagename ? 獲得該應用程序的包名 (對應于android:packagename屬性)

常用方法:

Drawable ?loadIcon(PackageManager pm) 獲得當前應用程序的圖像

CharSequence ?loadLabel(PackageManager pm) ? ? 獲得當前應用程序的label

PackageItemInfo類中的這些方法時利用PackageManager中的方法實現的。

PackageItemInfo類并不直接使用,而是由子類繼承然后調用相應方法。例如ActivityInfo類、ServiceInfo類和ApplicationInfo類等。

(2)我們來具體看下Launcher中時如何獲取應用程序icon的:

在IconCache.java中的

private CacheEntry cacheLocked(ComponentName componentName, ResolveInfo info) {

.....

entry.icon = Utilities.createIconBitmap(

info.activityInfo.loadIcon(mPackageManager), mContext);

}

也就是調用ActivityInfo類的loadIcon來獲取drawable型的icon信息。

接著我們看Utilities中的createIconBitmap方法,其中有

if (sourceWidth > 0 && sourceWidth > 0) {

// There are intrinsic sizes.

if (width < sourceWidth || height < sourceHeight) {

// It's too big, scale it down.

final float ratio = (float) sourceWidth / sourceHeight;

if (sourceWidth > sourceHeight) {

height = (int) (width / ratio);

} else if (sourceHeight > sourceWidth) {

width = (int) (height * ratio);

}

} else if (sourceWidth < width && sourceHeight < height) {

// It's small, use the size they gave us.

width = sourceWidth;

height = sourceHeight;

}

}

這段代碼對icon大小處理,如果icon是固有尺寸大于我們定義的尺寸就進行裁剪,如果小于我們定義的尺寸就采用其固有尺寸。

而尺寸是在這里定義的:

sIconWidth = sIconHeight = (int) resources.getDimension(android.R.dimen.app_icon_size);

定義這個app_icon_size是在\frameworks\base\core\res\res\values中的dimens.xml中。

總結

以上是生活随笔為你收集整理的android 图标点击变大,使android桌面图标变大的全部內容,希望文章能夠幫你解決所遇到的問題。

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