Android leftMargin没有移动,而是扩展视图。我该怎么移动它?

时间:2013-11-18 11:04:47

标签: android gallery translate

我在线性水平视图中有4个图像。使用XML我已经确定第一个图像在开始时适合屏幕宽度。我有左/右箭头,所以当我点击右箭头时,我想翻译水平布局以查看上一张/下一张图片。

我的想法是改变整个布局的边距,使其移动。但是,当我更改左边距时,它只是将第一个图像扩展到屏幕外部,向左。 为什么会发生这种情况,我怎样才能翻译整个事物并且不会产生这种扩展效应呢?

下面是我的XML和我的java:

  <LinearLayout android:id="@+id/HomeGallery"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal" >
                <LinearLayout android:id="@+id/innerHomeGallery"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal" >
                <ImageButton android:id="@+id/imageButtonHomeGallery1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/topimg12x"
                android:scaleType="centerCrop"
                android:adjustViewBounds="true"
                android:background="@null" /> 
         <ImageButton android:id="@+id/imageButtonHomeGallery2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/topimg22x"
                android:scaleType="centerCrop"
                android:adjustViewBounds="true"
                android:background="@null" />
        <ImageButton android:id="@+id/imageButtonHomeGallery3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/topimg32x"
                android:scaleType="centerCrop"
                android:adjustViewBounds="true"
                android:background="@null" />
        <ImageButton android:id="@+id/imageButtonHomeGallery4"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/topimg42x"
                android:scaleType="centerCrop"
                android:adjustViewBounds="true"
                android:background="@null" />
                </LinearLayout> 
            </LinearLayout>

..........

LinearLayout innerHomeGallery  = (LinearLayout)findViewById(R.id.innerHomeGallery);

    android.widget.LinearLayout.LayoutParams contentParams = (LinearLayout.LayoutParams)innerHomeGallery.getLayoutParams();

    contentParams.leftMargin=-600;

    innerHomeGallery.setLayoutParams(contentParams);

1 个答案:

答案 0 :(得分:0)

如果您正在尝试实现一种设计,用户可以通过左右箭头键在图像之间导航,那么请尝试使用ViewPager,或者更基本的操作。

  1. 将框架布局保留为根视图,添加想要作为第一个孩子的任何尺寸的Imageview

  2. 您可以将另外两个子项作为左右导航按钮添加到framelayout。

  3. 现在为这两个按钮实现onClick侦听器,现在只需在相应的按钮点击时添加用于将正确图像设置到ImageView的代码。您还可以在动画中添加不同的动画,例如淡入或我们的动画,使其看起来更酷。

    希望它有所帮助。