안드로이드 스튜디오

Button 버튼(view)에 그림자오류 입체감주기 #안드로이드 스튜디오 (그림자가 안보여요)

담디비 2020. 7. 29. 19:12

 

   < shadow doesn't working > <not showing shadow>

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 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"
    tools:context=".MainActivity"
    android:id="@+id/main"
    android:clipToPadding="false">

    <Button
        android:layout_margin="50dp"
        android:id="@+id/btr"
        android:background="@color/black"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:elevation="30dp"
 
></Button>

elevation에 크기만 주면 음영이 생길줄 알았는데  안생긴다 .. oh god 

에러 없는게 더 무섭다 

stackoverflow 결과 elevation 이 적용이 되려면 

몇가지 조건이 있댄다 

 

1. 그림자가 생길 충분한공간이 있어야 한다는것 

-padding이나 margin으로 그림자가 생길 여백을 만들어주자 (여백보다 elevation이 크면 안돼용)

2.background에 색깔이 있어야 한다는것! 

- imageView 라도 백그라운드를 지정해줘야 그림자가 생깁니다 

지정해줍시다!

 

근데 나는 이 조건에 해당이 안되는데도 계속 elevation이 적용이 안되었다 ㅠㅠㅠ 

 

  <Button
        android:layout_margin="100dp"
        android:id="@+id/btr"
        android:background="#ffffff"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button"
        app:elevation="10dp"
        android:translationZ="10dp"
        android:stateListAnimator="@null"
></Button>

엄청난 구글링을 통해 찾아낸 

StackOverflow고수들의 해결법

1.부모레이아웃에에 Cliptopadding=false 를 줘서 뷰간섭을 안받게하여 그림자가 생길수 있도록 하자 

 

2.traslation z =""를 사용하여 z축을 이동시키기 

 

3.stateListAnimator="@null"

 

4.z축 이동시키는 자바코드 짜버리기 (이거 할 생각까지 했었다 ㄹㅇ )

 

다해봤는데 안되어서 서얼마~ 하고 색깔을 #ffffff 로 변경해봤는데 

적용이 되었따  ;; 

HOLLY ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ