我正在开发一个包含多个应用程序小部件的应用程序,其中一些正在使用GridView
来显示其内容。内容是一堆电影封面艺术图像,我想保留图像的原始宽高比。
或者,我正在寻找一种方法来声明图像的宽高比。但是,当用户更改应用小部件的大小时,图像仍然符合GridView
的宽度非常重要。
由于在处理ImageView
时无法使用RemoteView
的子类,因此无从谈起。我目前在ScaleType.CENTER_CROP
上使用ImageView
以及定义的高度和宽度,但正如您可以想象的那样,这并不完美。
有什么建议吗?
答案 0 :(得分:5)
答案 1 :(得分:1)
尝试将GridView columnWidth设置为图像宽度,将numColumns设置为“auto_fit”,将stretchMode设置为“spacingWidth”:
<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="50dp"
android:numColumns="auto_fit"
android:stretchMode="spacingWidth" />
答案 2 :(得分:1)
答案 3 :(得分:1)
ImageView与TextView略有不同。 ImageView具有“src”,用于定义窗口小部件中的前景图像。如果在imageview中设置背景,它将显示在前景后面。这两个图像的控制方式与android:stretchMode
和其他android参数不同。
我建议您尝试将所有android:src
更改为android:background
,反之亦然,以获得您认为适合您的模式。在你想要看到它们的方式获得一些图像之后,然后使用GIMP,Photoshop操作图像,使它们与你想要的相同。图像本身需要很好,以便这些参数能够很好地适应它。图像的尺寸,密度和X-Y比率。
答案 4 :(得分:0)
在此处查看用于另一个appwidget宽高比问题的RelativeLayout + ShapeDrawable技术:How can I fill an ImageView in an Appwidget while mainiting the aspect ratio?
它适用于AppWidget约束,应该适用于此问题。