ImageView가 좌표를 변경하여 다른 ImageView를 따르도록하려합니다. 내 이동 방법은 그 :ImageView를 다른 imageView의 위치로 옮깁니다. - Android Studio
공개 무효 이동 (더블 ZX 이중 ZY) {
if (zx < a.getLeft()) {
if (a.getLeft() - zx > 0) {
a.setLeft(a.getLeft() - 1);
} else
a.setLeft(a.getLeft()+1);
}
if (zx > a.getLeft()) {
if (a.getLeft() - zx > 0) {
a.setLeft(a.getLeft() - 1);
} else
a.setLeft(a.getLeft() - 1);
}
if (zy > a.getTop()) {
if (a.getTop() - zy > 0) {
a.setTop(a.getTop() - 1);
} else
a.setTop(a.getTop() + 1);;
}
if (zy < a.getTop()) {
if (a.getTop() - zy > 0) {
a.setTop(a.getTop() - 1);
} else
a.setTop(a.getTop() + 1);
}
}
에서 OnCreate :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fase);
a = (ImageView)findViewById(R.id.a);
b = (ImageView)findViewById(R.id.b);
move(b.getLeft(), b.getTop());
}
"A"와 "B"인 ImageViews 및 b를 따라야합니다. ImageViews를 올바르게 선언 했으므로 메서드가 제대로 작동합니다. 대신 ImageView "a"는 응용 프로그램이 시작된 이후 동일한 위치에 있습니다. 뭐가 잘못 되었 니? 메서드가 잘못된 위치 (onCreate)에 선언 되었습니까? 또한 화면의 다른 부분에 "a"의 세로 위치를 설정하여 작동하는지 테스트하려고했습니다. 하지만 그렇지 않았습니다 (그리고 logCat에 따르면 수직 위치가 변경되었습니다). 움직이는 이미지에 대한 자습서는 이미지 드래그를 기반으로하지만 아직 다른 종류의 움직임에 대해서는 아직 찾지 못했습니다.
내 레이아웃 (activity_fase.xml)가있다 :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="thegame.app.Fase"
android:background="@drawable/seapaint">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/b"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:src="@drawable/b"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/a"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:src="@drawable/a"
android:focusable="true"
android:clickable="false"
android:layout_marginBottom="79dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView2"
android:layout_above="@+id/b"
android:layout_alignLeft="@+id/a"
android:layout_alignStart="@+id/key"
android:layout_marginBottom="67dp"
android:src="@drawable/key"
android:layout_marginLeft="50dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/points"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
나는 안드로이드 개발에 새로운 해요, 나는 상대 레이아웃과 직선 사이의 차이를 모른다 형세.
'ImageView'는 모두 'LinearLayout'이 아닌'RelativeLayout'과 같은 것입니까? 레이아웃 뷰 (activity_fase.xml)를 줄 수 있습니까? – Harry
질문에 레이아웃보기를 추가했습니다. – Danilo
"a"ImageView는 (당신의 XML에서) 어떤 포지셔닝 규칙을 위반하는 속성을 사용하고 있습니다. 그것은'android : layout_alignParentBottom = "true"'입니다. 이 속성은 뷰에서 모든 위치 지정을 무시하고 부모 뷰의 맨 아래에 배치합니다. 그래서 당신은 그것을 제거해야합니다. – Harry