Android 是否在水平滚动视图中正确缩放可绘图项?

Android 是否在水平滚动视图中正确缩放可绘图项?,android,icons,horizontalscrollview,Android,Icons,Horizontalscrollview,我有一个水平滚动视图,其中包含用户设备上安装的应用程序的图标。守则内容如下: for(int i=0; i<installedApps.size();i++){ ImageView appIcon = new ImageView(this); Drawable drawableAppIcon = mPackageManager.getApplicationIcon(installedApps.get(i).applicationInfo);

我有一个水平滚动视图,其中包含用户设备上安装的应用程序的图标。守则内容如下:

    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);
    }
<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…
我认为可以做到这一点,当我在gridview中做了类似的事情时,第二行注释对我来说很有用,但在这种情况下,两者都没有做

我还尝试将LinearLayout的布局高度设置为50dp,但这只会导致图标被切断,因为它们对于布局来说太大了。那么如何缩小这些图标呢

编辑:为了解决这个问题,我应该编辑ImageView的参数,而不是drawable的参数,所以下面的操作很有效:

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

再次将大小设置为0 55 55,但调用appIcon.setScaleType(ScaleType.CENTER_-INSIDE)


查看和的一些文档

检查drawableAppIcon.getIntrinsicWidth()和getIntrinsicHeight()尝试了它,同样的一般错误,我想也许我应该在ImageView上设置边界而不是Drawable?是的,我以为你在ImageView上设置边界,因为我刚刚浏览了源代码。