3

我正在开发一个具有多个应用程序小部件的应用程序,其中一些正在使用 aGridView来显示其内容。内容是一堆电影封面图片,我想保留图片的原始纵横比。

或者,我正在寻找一种方法来声明图像的纵横比。GridView但是,当用户更改应用小部件的大小时,图像仍然适合宽度是很重要的。

ImageView由于在处理RemoteViews时不可能使用子类,所以这是不可能的。我目前正在使用ScaleType.CENTER_CROP以及ImageView定义的高度和宽度,但正如你可以想象的那样,这并不完美。

有什么建议么?

4

5 回答 5

5

您是否在 ImageView 上尝试过此方法?

    imageView.setAdjustViewBounds(true);

由于这个链接,我找到了它。

于 2013-02-02T09:51:03.333 回答
1

创建远程视图的子类,在其中设置位图时使用如下内容:

https://stackoverflow.com/a/2999707/944070

或在这种情况下覆盖 onMeasure:

https://stackoverflow.com/a/4688335/944070

于 2013-02-04T08:31:10.160 回答
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" />
于 2013-01-30T09:21:15.210 回答
1

ImageView 与 TextView 有点不同。ImageView 具有“src”,它定义了小部件中的前景图像。如果在 imageview 中设置背景,它会显示在前景的后面。这两个图像的控制方式与android:stretchMode其他 android 参数不同。

我建议您尝试将所有内容更改android:srcandroid:backgroundAND 反过来,以获得您认为对您有用的模式。在您以您希望的方式获得一些图像之后,然后使用 GIMP、Photoshop 处理图像,使其大小与您认为您喜欢的相同。图像本身需要很好,这样这些参数才能很好地工作。图像的大小、密度和 XY 比率。

于 2013-02-04T09:24:05.717 回答
0

请参阅此处用于另一个 appwidget 纵横比问题的 RelativeLayout+ShapeDrawable 技术:How can I fill an ImageView in an Appwidget while mainiting aspect ratio?

它在 AppWidget 约束内工作,应该适用于这个问题。

于 2014-02-23T20:09:15.143 回答