2016-07-19 11 views
0

私はランチャーをやろうとしていますが、アプリケーションを表示するListViewに問題があります。 だから、私はあなたの助けListViewの活動のアイコンのサイズを調整する必要があります。 コードがあります:android - scaling ImageView

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の問題ではない、私は変更する必要があり、すべてが相を受信アイコンです。

+0

ImageViewで 'android:scaleType = "fitXY" 'を参照してください –

答えて

0

これは私がいつか仕事をしていたプロジェクトからのものです。あなたは、ビットマップとして画像を読み込み、それをリサイズして、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が提供しています。