Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在没有动画的情况下设置Imageview位置_Android_Xml_Android Layout_Imageview - Fatal编程技术网

Android在没有动画的情况下设置Imageview位置

Android在没有动画的情况下设置Imageview位置,android,xml,android-layout,imageview,Android,Xml,Android Layout,Imageview,我有这个图像视图 activity1.xml <ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="300dp" android:layout_alignParentLeft="true" android:layout_centerVertical="tr

我有这个图像视图
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" />
<?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
      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
  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" />

有了这个结果

我用这个动画为它制作动画
anim.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" />
<?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
      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
  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" />

因此,我得到:

但是,在我的其他活动中,如果不使用动画,我如何能够拥有与ImageView相同的位置?
Activity2.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" />
<?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
      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
  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" />

因为当我尝试的时候我得到了

我搜索两个活动之间imageview的相同位置
感谢您在这两项活动中将android:layout\u height=“300dp”替换为
android:layout\u height=“wrap\u 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="300dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:src="@drawable/logobrand"
        android:visibility="visible" />
<?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
      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
  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" />


希望对您有所帮助

您可以使用以下方法计算布局的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);

我希望这会有所帮助。

android:layout\u centerHorizontal
不应该改为
android:layout\u centerVertical
?听起来你需要在第二个活动中模拟动画图像的最终位置。你能不能改变高度来包装内容,用marginTop来达到同样的位置?