我的Activity
ImageView
位于RelativeLayout
内,我希望能够将ImageView
移到RelativeLayout
内,当我删除我的手指我希望ImageView
回到原来的位置。
我尝试了以下内容:
mImageView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
mImageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int[] locations = new int[2];
mImageView.getLocationOnScreen(locations);
//mImageView.getLocationInWindow(locations);
mOldX = locations[0];
mOldY = locations[1];
System.out.println("X: " + mOldX + " Y: " + mOldY);
}
});
在up
的{{1}}行动中,我尝试了以下内容:
OnTouchListener
,setX
(不工作)setY
,setLeft
(不工作)setTop
(不工作)那么任何人都可以告诉我该怎么做吗?
修改
活动setLayoutParams
:
xml
活动代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical" >
<include
android:id="@+id/custom_header_layout"
layout="@layout/item_header" />
<TextView
android:id="@+id/push_to_start_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/largest_margin"
android:text="@string/push_to_start_recording"
android:textSize="@dimen/larger_text_size"
android:visibility="visible"
/>
<TextView
android:id="@+id/timer_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/medium_margin"
android:text="00:00"
android:textSize="55sp"
/>
<TextView
android:id="@+id/status_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/large_margin"
android:text="@string/recording"
android:textSize="@dimen/larger_text_size"
android:visibility="invisible"
/>
<RelativeLayout
android:id="@+id/parentLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/record_imageview"
android:layout_width="@dimen/record_audio_image_size"
android:layout_height="@dimen/record_audio_image_size"
android:layout_centerHorizontal="true"
android:src="@drawable/post_done" />
<ImageView
android:id="@+id/cancel_imageview"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/large_margin"
android:src="@drawable/post_cancel" />
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:0)
尝试在之前调用mImageView.requestLayout()
设置新位置。如果无效,请尝试在后设置新位置时调用mImageView.invalidate()
。
如果它仍然不起作用,请在设置位置时发布代码(您尝试的3种方式)。