본문 바로가기

Dev/안드로이드

Do it! 안드로이드 앱 프로그래밍 프레임 레이아웃과 뷰의 전환

728x90
반응형

안녕하세요. 저는 작년에 수업 때문에 다른 책으로 안드로이드 공부를 했었는데요.

 

이번 년도에 들어서 처음 만나뵙게 된 멘토 분이 저에게 추천해주신 책을 갖고 안드로이드 공부를 하고 있습니다.

 

먼저 순서대로 포스팅하지 못한 점 죄송합니다.

 

오늘은 Do it! 안드로이드 앱 프로그래밍 개정 7판 프레임 레이아웃에 대해 공부를 하다가

프로젝트에 오류가 있어서 포스팅하게 되었습니다.

 

일단 p.158~162의 내용입니다.

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:onClick="onButton1Clicked"
        android:text="이미지 바꾸기" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="invisible"
            android:src="@drawable/dream01" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="visible"
            android:src="@drawable/dream02" />
    </FrameLayout>
</LinearLayout>

이 xml파일에서 에러가 생겼었는데요. 책에는 ImageView 속성에 app:srcCompat="@drawable/dream01" 이라고 되어있던 부분입니다.

 

그런데 막상 AVD로 실행해보게 되면 이미지 바꾸기 버튼은 나타나지만 밑에 아무런 이미지도 보이지 않았습니다.

이미지뷰가 보이지 않는 AVD 실행 화면

 

개인적으로 이 에러를 알기 힘든 이유가 xml 디자인화면에서는 정상적으로 출력되는 것으로 보여지기 때문입니다.

 

여기서 저는 tools:srcCompat으로 코드를 작성해서 그런 것이 아니냐고 하실 분들이 계실 것 같은데

 

app:까지 입력하고 자동완성 줄을 보면 srcCompat이란 코드는 나오지 않았고,

 

그래서 ImageView를 xml 디자인 화면에서 Palette를 이용해서 버튼을 생성했을 때 입력된 코드를 활용했던 것입니다.

 

결론

tools:srcCompat을 android:src로 변경해주면 된다.

 

 

'위 링크를 통해 구매 시 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음'

728x90
반응형

"); wcs_do();