我有这个Imageview
的 activity1.xml
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@drawable/logobrand"
android:visibility="visible" />
有了这个结果
我用这个动画制作动画
的 anim.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">
<translate
android:fromXDelta="0%p"
android:toYDelta="-35%p"
android:duration="1000" />
</set>
所以我得到了:
但是在我的其他活动中,我如何在不使用动画的情况下拥有相同的ImageView位置? 的 Activity2.xml
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/logobrand"
android:visibility="visible" />
因为当我试着获得那个......
我搜索两个活动之间的imageview相同的位置 感谢
答案 0 :(得分:0)
将android:layout_height="300dp"
替换为android:layout_height="wrap_content"
并添加第二个活动android:layout_marginto="Xdp"
看起来像第一个活动!
<强> activity1.xml
强>
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@drawable/logobrand"
android:visibility="visible" />
的 activity2.xml 强>
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:src="@drawable/logobrand"
android:visibility="visible" />
希望得到帮助
答案 1 :(得分:0)
您可以使用以下方法计算布局的marginTop(无需更改任何内容):
// waiting for layout to be created.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// top of your logo when when center vertical
int originalPosition = iV1.getTop();
System.out.println("original position :: " + originalPosition);
// vertical upward shift using your animation property
int verticalShift = (int) (parentView.getHeight() * 0.35f);
System.out.println("vertical shift :: " + verticalShift);
// final margin from top
int marginTop = originalPosition - verticalShift;
System.out.println("actual margin top :: " + marginTop);
// testing it on another view
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) iV2
.getLayoutParams();
lp.setMargins(0, originalPosition - verticalShift, 0, 0);
iV2.setLayoutParams(lp);
}
}, 100);
我希望这会有所帮助。