设置ImageView的页边距scaleType =" fitCenter"

时间:2014-08-13 13:29:06

标签: android android-layout imageview android-relativelayout

我有纵向模式的活动。在活动内部,我想要想象一个自动适合屏幕宽度的图像(无论尺寸和比例)(想象一下普通的图库应用程序)。 为此,我将 ImageView 放置在 RelativeLayout 中,这样:

<RelativeLayout
    android:id="@+id/relLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="0dp">

    <ImageView
        android:id="@+id/greatImage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter"
        android:adjustViewBounds="true"/>

</RelativeLayout>

没关系,但现在我需要将 ImageView 移动一定量的 DP (ex 300dp)以便的底部> ImageView 出现在屏幕外(这是因为稍后我将启动一个动画,将ImageView置于正确的位置)。

如果我为 RelativeLayout 设置 layout_marginTop =&#34; 300dp&#34; ImageView 将按比例缩小,并且是边界停止匹配父宽度。

我知道我可以将 scaleView scaleType 设置为中心,但这样 ImageView 停止正确缩放以将其尺寸限制在屏幕上。

我找到的唯一解决方案是将 RelativeLayout 包装在 ScrollView 中,并移动相同 ScrollView <的 marginTop / em>的

还有另外一种方法吗? 希望我解释了我的问题,谢谢。

3 个答案:

答案 0 :(得分:1)

不要使用“scaleType” - 最好的办法是使用java(除非你需要用XML做这件事 - 这可能意味着更有创意的东西,如果可能的话)。

检查出来:

Android: How to stretch an image to the screen width while maintaining aspect ratio?

答案 1 :(得分:1)

请尝试将layout_marginBottom设为-300dp

这会将您的布局从底部推出屏幕,而不会改变视图的高度。

答案 2 :(得分:1)

如果您还设置layout_marginBottom="-300dp"并为两个属性设置动画,该怎么办?