이제 막 안드로이드책을 잡은지라 디버깅도 잘 안되서.. 질문합니다..
'위로' 버튼을 누르면 사진이 위에만 뜨고, '아래로' 버튼을 누르면 사진이 아래에만 뜨게하고 싶습니다.
제가 생각한 방법은 이렇습니다.
0. ImageView01은 위의 VIew로 ImageView02는 아래의 View로 설정합니다.
1. ImageView01 과 ImageView02 의 visibility 값을 모두 invisible로 설정합니다.
2. 자바 코드에서 Button객체들을 참조하여 '위로'버튼이 눌리면 ImageView01의 visibility=visible로,
ImageView02의 visibility=invisible로 바꿉니다. '반대로'버튼이 눌린 경우 반대로 바꾸어줍니다.
제가 한 방법대로하면 버튼이 한번 눌렸을때만 작동을 하고 2번째부턴 2개의 View에 모두 사진이 보이고 안 없어지네요.. 무엇이 문제인걸까요???
<activity_main.xml 코드>
<HorizontalScrollView
android:id="@+id/horScrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
>
<ScrollView
android:id="@+id/scrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageView01" /*이미지View01*/
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pic1"
android:visibility="invisible"
/>
</ScrollView>
</HorizontalScrollView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="위로"
android:layout_marginLeft="50dp"
/>
<Button
android:id="@+id/button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
android:layout_weight="1"
android:text="밑으로"
/>
</RelativeLayout>
<HorizontalScrollView
android:id="@+id/horScrollView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
>
<ScrollView
android:id="@+id/scrollView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imageView02" /*이미지View02*/
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pic1"
android:visibility="invisible"
/>
</ScrollView>
</HorizontalScrollView>
MainActivity.java
ImageView imageView01,imageView02;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView01 = (ImageView) findViewById(R.id.imageView01);
imageView02 = (ImageView) findViewById(R.id.imageView02);
Button button01 = (Button) findViewById(R.id.button01);
Button button02 = (Button) findViewById(R.id.button02);
button01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
UpImage();
}
});
button02.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DownImage();
}
});
UpImage();
}
private void UpImage() {
imageView01.setVisibility(View.VISIBLE);
imageView02.setVisibility(View.INVISIBLE);
imageView01.invalidate();
imageView02.invalidate();
}
private void DownImage() {
imageView01.setVisibility(View.INVISIBLE);
imageView02.setVisibility(View.VISIBLE);
imageView01.invalidate();
imageView02.invalidate();
}