在水平滚动视图中正确缩放绘图?
问题描述:
我有一个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);
检查drawableAppIcon.getIntrinsicWidth()和getIntrinsicHeight的() – pskink