簡體   English   中英

縮放圖像

[英]android - scaling ImageView

我正在嘗試啟動一個啟動器,但發現顯示應用程序的ListView存在問題,因為某些應用程序具有較大的圖標,而另一些則具有較小的圖標。 因此,我需要您的幫助來調整ListView活動中圖標的大小。 有代碼:

private PackageManager manager;
private List<AppDetail> apps;
public void loadApps(){
    manager = getPackageManager();
    apps = new ArrayList<AppDetail>();

    Intent i = new Intent (Intent.ACTION_MAIN, null);
    i.addCategory(Intent.CATEGORY_LAUNCHER);

    List<ResolveInfo> aviableActivities = manager.queryIntentActivities(i, 0);
    for(ResolveInfo ri:aviableActivities) {
        AppDetail app = new AppDetail();
        app.label = ri.loadLabel(manager);
        app.name = ri.activityInfo.packageName;
        app.icon = ri.activityInfo.loadIcon(manager);
        apps.add(app);
    }
}

這不是XML問題,我需要更改的一切都在圖標接收階段。

這是我前一段時間從事的一個項目。 您可以將圖像加載為位圖,調整其大小,然后將其設置為ImageView

public static Bitmap resizeBitmap(Bitmap bm, int newWidth, int newHeight) {
    int width = bm.getWidth();
    int height = bm.getHeight();
    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;
    // CREATE A MATRIX FOR THE MANIPULATION
    Matrix matrix = new Matrix();
    // RESIZE THE BIT MAP
    matrix.postScale(scaleWidth, scaleHeight);

    // "RECREATE" THE NEW BITMAP
    Bitmap resizedBitmap = Bitmap.createBitmap(
                bm, 0, 0, width, height, matrix, false);
    bm.recycle();
    return resizedBitmap;
    }

但是在執行此操作之前,我強烈建議您按比例縮小輸入圖像的采樣比例(因為可能以較低的圖像分辨率可以這樣做),或者您可能正在使用大量內存處理圖像並迅速遇到OutOfMemoryError。 此代碼由Google提供。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM