📌 소스
🎈 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부분을 아래와 같이 바꾸어준다.