我有一个 HorizontalScrollView,其中包含安装在用户设备上的应用程序的图标。代码如下:
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...
认为可以解决问题,当我在 gridview 中做类似的事情时,第二行评论对我有用,但在这种情况下,两者都不是吗?
我还尝试将 LinearLayout 的 layout_height 设置为 50dp 之类的值,但这只会导致图标被截断,因为它们对于布局来说太大了。那么如何缩小这些图标呢?
编辑:设法弄清楚,我应该一直在编辑 ImageView 的参数,而不是可绘制的,所以以下工作:
LayoutParams layoutParams = new LayoutParams(55, 55);
appIcon.setLayoutParams(layoutParams);