0

ユーザーのデバイスにインストールされているアプリのアイコンを含む Horizo​​ntalScrollView があります。コードは次のようになります。

    for(int i=0; i<installedApps.size();i++){
        ImageView appIcon = new ImageView(this);
        Drawable drawableAppIcon = mPackageManager.getApplicationIcon(installedApps.get(i).applicationInfo);
        //drawableAppIcon.setBounds(0, 0, 55, 55);
        appIcon.setImageDrawable(drawableAppIcon);
        //appIcon.setScaleType(ImageView.ScaleType.CENTER_CROP);
        listLayout.addView(appIcon);
    }

installedAppsデバイスにインストールされているすべてのアプリの PackageInfo の ArrayList はどこにありますか。.xml は次のとおりです。

<HorizontalScrollView
        android:id="@+id/scrollViewArcade"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <LinearLayout
            android:id="@+id/listApps"
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
    </LinearLayout>
</HorizontalScrollView>

これに関する問題は、アプリを実行すると、さまざまなアプリがさまざまな密度のさまざまなサイズのアイコンを持つことになります。密度や解像度については特に気にしていません。私のケースではすべてのアイコンを、違いがわからないほどのサイズに縮小する必要があるからです。ただし、すべてのアイコンを同じサイズにする方法を正確に理解するのに苦労しています。私がコメントした最初の行drawable...はうまくいくと思いました.2番目のコメント行は、グリッドビューで同様のことをしたときにうまくいきましたが、この場合、どちらもそれをしていませんか?

また、 LinearLayout の layout_height を 50dp のような値に設定しようとしましたが、レイアウトには大きすぎるため、アイコンが切り取られてしまいました。では、これらのアイコンを縮小するにはどうすればよいでしょうか?

編集:それを理解することができました。ドローアブルではなく、ImageView のパラメーターを編集する必要があったため、次のように機能しました。

LayoutParams layoutParams = new LayoutParams(55, 55);
appIcon.setLayoutParams(layoutParams);
4

1 に答える 1