宽度大于Screen的Android ImageView setLayoutParams

时间:2015-03-25 08:52:37

标签: android android-layout layoutparams

我在布局xml中有ImageView,如下所示:

<ImageView
        android:id="@+id/notePointerImageView"
        android:layout_width="700px"
        android:layout_height="6px"
        android:scaleType="fitXY"
        android:src="@drawable/whiteline"

        />

我在onWindowFocusChanged中动态设置宽度,高度和边距:

RelativeLayout.LayoutParams notePointerLayoutLP = new RelativeLayout.LayoutParams(263, 2); 
        notePointerLayoutLP.setMargins(0, 150, 14, 0);
        notePointerImageView.setLayoutParams(notePointerLayoutLP);
        notePointerImageView.requestLayout();

由于屏幕宽度仅为240x301,因此imageView的左侧部分关闭屏幕。但看起来像imageView的那部分被删除,图像在屏幕内调整大小(我使用fitXY),并使ImageView大小为226x2。 (226 + 14 == 240,这是屏幕宽度)

由于我以后必须为ImageView设置动画,我无法接受剪裁和调整ImageView的大小。我真的需要一个负的左边距。有人能告诉我怎么办?或者它只是一个模拟器问题?

1 个答案:

答案 0 :(得分:1)

要强制大图片适合屏幕内部或某种尺寸,您可以使用FrameLayout作为:

<FrameLayout
    android:id="@+id/fm_image"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

       ... ...
>

    <ImageView
        android:id="@+id/myImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:layout_gravity="center"
        android:gravity="center"

        android:src="@drawable/my_image"/>

</FrameLayout>

针对特定尺寸的尺码,您只需设置FrameLayout的布局尺寸。

希望这有帮助!