마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

2개의 ImageView를 위아래로 배치하고 사진을 왔다갔다 옮기려고합니다.

0 추천

이제 막 안드로이드책을 잡은지라 디버깅도 잘 안되서.. 질문합니다..

'위로' 버튼을 누르면 사진이 위에만 뜨고, '아래로' 버튼을 누르면 사진이 아래에만 뜨게하고 싶습니다.

제가 생각한 방법은 이렇습니다.

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();
    }

 

Humbolt (120 포인트) 님이 2016년 1월 10일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...