기타/🚨 에러

Android Studio with Kotlin # Button을 이미지를 사용해 만들고 싶지만 보라색으로만 나올 때

둥굴둥굴둥굴레차 2022. 7. 13. 14:23

📌 소스

 

🎈 MainActivity.kt

package org.techtown.kotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.drawable)
    }
}

 

🎈 layout폴더의 drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="@drawable/drawable_test"
        ></Button>

</androidx.appcompat.widget.LinearLayoutCompat>

 

🎈 drawable폴더의 drawable_test.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/handmade_ovalshap" android:state_pressed="true"></item>
    <item android:drawable="@drawable/duck" android:state_pressed="false"></item>
    
</selector>

 

🎈 drawable폴더의 handmade_ovalshap.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    
    <size
        android:width="100dp"
        android:height="100dp"></size>
    <stroke
        android:width="10dp"
        android:color="@color/teal_200"></stroke>
    <solid
        android:color="@color/purple_200"></solid>
        
</shape>

 

🎈 drawable폴더의 duck.jpg

 

 

🎈 폴더 전체 구조

 

 

 

📌 내가 원하는 기능

기본 버튼 이미지는 duck.jpg(오리 이미지)이지만, 클릭하면 handmade_ovalshape.xml(동그란 모양)이 나오도록 하고싶음.

 

 

📌 현실(?)

기본 버튼 이미지인 오리 사진이 나오지 않고 보라색 상자가 나오고, 클릭하면 동그란 모양이 나옴.

 

 

 

📌 해결

values폴더 - themes폴더 - themes.xml파일의 parent부분을 아래와 같이 바꾸어준다.