我在线性水平视图中有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);
答案 0 :(得分:0)
如果您正在尝试实现一种设计,用户可以通过左右箭头键在图像之间导航,那么请尝试使用ViewPager,或者更基本的操作。
将框架布局保留为根视图,添加想要作为第一个孩子的任何尺寸的Imageview
您可以将另外两个子项作为左右导航按钮添加到framelayout。
现在为这两个按钮实现onClick侦听器,现在只需在相应的按钮点击时添加用于将正确图像设置到ImageView的代码。您还可以在动画中添加不同的动画,例如淡入或我们的动画,使其看起来更酷。
希望它有所帮助。