[내배캠 Android 4기] TIL 0628

오리너구리·2024년 6월 29일
0

TIL

목록 보기
42/48
post-thumbnail

오늘 할일

  • 코드카타 50번
  • 스탠다드반 과제 다듬기
  • 람다식 공부

코드카타

⏲️ 09 : 20 ~ : 10 : 00

오늘도 문제가 별로 안어려워서 구글링 안하고 풀었는데,

중간에 indexOf 만 일치하는 첫번째인덱스말고 마지막 인덱스 반환하게 할 수 있나만 궁금해서

검색해서 lastIndexOf를 찾아내서 잘 완료했당~!

근데 다른 사람 풀이보니까 람다식 천지인거보고 개빡침~!

무슨무슨법으로 람다식 금지시켜라;;

어케 푼건지 이해가 안되어버림~!

https://velog.io/@orinugoori_art/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-CODEKATA-50-%EB%91%90%EA%B0%9C-%EB%BD%91%EC%95%84%EC%84%9C-%EB%8D%94%ED%95%98%EA%B8%B0-0im2h1l6


스탠다드반 과제 다듬기

어제 작성해놓은 무조건 수정해야될것들!

흐린눈하고 넘길 수 없는것

  1. 하단 네비게이션바? 하는 방법 알아내서 넣어야함
  2. 제일 밑에 Hyang 라디오부분에 위에 검은색 투명 그라디언트 추가해야함
  3. Hyang 라디오 부분에 플레이리스트 미리듣기 버튼 양옆 패딩 값 줄이고, 투명도 조절

어제 TIL을 끝까지 안썼는데 어제 네비바까지는 구현해놨기때문에~!

2번 3번 했음

그라디언트 xml 작성해서 적용

  1. xml 파일 생성 후 코드 작성

    <?xml version="1.0" encoding="UTF-8" ?>
    
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    
        <gradient
            android:angle="270"
            android:startColor="#CC000000"
            android:centerColor="@android:color/transparent"
            android:endColor="#99000000"
            android:type="linear"/>
    
    </shape>

    이렇게 대충 gradient 태그에

    적용할 각도, 시작색, 중간색 끝 색 정하고, 그라디언트 타입 알맞은걸로 정해주면된다~!

    나는 그냥 linear로 위 아래는 검은색인데 투명도 살짝있는 검은색하고 중간부분은 아예 투명하게 줘서 사진이 잘보이는 걸 원해서~

  1. 적용할 image View src에 넣어주기~
                    <ImageView
                        android:id="@+id/iv_radio_artist_photo_gradient"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginTop="16dp"
                        android:layout_marginStart="16dp"
                        android:layout_marginEnd="16dp"
                        android:src="@drawable/gradient_radio_artist_photo"
                        />

그라디언트 적용 전후 비교~!

미리듣기 버튼 여백 조절

그냥 간단하게 원래 패딩값이 전체 10인가 들어가있었는데,

앞에는 이미지도 들어가있고해서 서로 여백이 다른게 너무 거슬려서 수정해줌~!

그리고 스크롤되는 화면의 크기가 너무 딱맞으니까 네비바 넣고 밑이 살짝 잘려서 보이게돼서

살짝 여유롭게 만들어서 끝까지내렸을 때는 네비바에 안가려지게 해줬당

전후 비교~!

첫번째거는 미리듣기 글자 뒤에 여백이 애매하게 넓어버림~!


튜터님한테 가서 피드백 듣고오기

성희 튜터님한테 가서 지금까지 과제한거 들고가서 검사맡고 질문 + 수다를 떨고왔다

성희튜터님 너무조아…너무따수워..존내 힐링타임

  1. 이미지 클리핑마스크 같은 기능이 있는지?

    → clipToOutLine

    api 31버전 이상에서는 xml파일에서도 사용가능하고 그 전 버전들은 kt파일에서 설정해줘야함

    background에 마스크씌울 모양?을 넣어주고 src에 이미지 넣은다음에 clipToOutLine하면 마스크씌워져서 모양따라 된당

  1. 현업에서 저렇게 이미지를 넣는다고하면 디자인을 아예 해서 완성된 이미지를 넣는지, 따로 넣어서 코드로 만드는지?

    상황마다 효율마다 다르지만, 지금 내 앱을 만든다고 가정했을때 추천 스테이션 부분은 무조건 이미지 디자인해서 넣을거고 아티스트 이름, 로고 정도만 코딩으로 할거같고,

    믹스추천, 즐겨듣는 믹스 같은경우는 단순해서 따로 할 수 도 있을 것같다. 보통 그냥 디자인팀, 개발팀 상의 하에 효율적인 방법을 구상해서 결정함

  2. 이 이후에 더 내맘대로 추가해도 되는지?

    원한다면 ㄱㄱ why not?


튜터님 피드백 반영해서 수정

clipToOutLine

오늘 튜터님한테 물어봐서 존재를 알아낸 기능~!

포토샵의 클리핑 마스크 같은 기능이 있는지 여쭤봤는데 바로 알려주심

또 갓성희야..나는 숭배할 수바께없ㅇ…

원래도 내가 이게 가능한지 보려고 background에 oval shape xml을 넣어놓고,

src에 이미지 넣어서 되는지 확인했는데 안돼서 포기했었는데,,

여기서 clipToOutLine만 추가해주면 되는거였음~~!

완즈이 수정 간단해서 럭키비키바키자너~

다만 주의할 점으로 clipToOutLine을 xml에서 바로 적용할 수 있는건

API31 이상부터고, 그 이전 버전에 적용하려면 코틀린파일에서 적용해줘야함.

api31이상 :

xml파일 적용할 위젯 태그내에서 바로 적용가능 , 디자인 뷰에서도 마스크 적용되는걸 확인할 수 있음

 <ImageView
                    android:id="@+id/iv_radio_artist_circle"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:background="@drawable/button_shape_profile"
                    android:src="@drawable/iv_cover_playlist_hyang"
                    android:clipToOutline="true"
                    android:scaleType="fitCenter"
                    android:layout_marginTop="16dp"
                    android:layout_marginStart="16dp"
                    app:layout_constraintTop_toBottomOf="@id/scrollView_user_mix"
                    app:layout_constraintStart_toStartOf="parent"/>

api 30 이하:

해당 Activity.kt 파일에서 객체 만들어서 .clipToOutLine = true로 설정해주면 됨

        val radioArtistCircle = findViewById<ImageView>(R.id.iv_radio_artist_circle)

        radioArtistCircle.clipToOutline = true

app:tint

이거는 튜터님한테 배워온건아니고 내가 즐겨듣는 믹스 부분에 들어갈 프레임을 색 바꿔서 저장하는걸 까먹어서 그냥 하나만 만들어놨었음

근데 수정하기 귀찮아서 그냥 색 하나로 통일할까… 하고 흐린눈 하고 있었는데

clipToOutLine처럼 마스크까지 되는걸 보니까 색상 변경도 여기서 할 수 있을 것 같은 예감이 들어버림

그래서 대충 tint 겠거니 하고 android:tint 옵션을 줬는데 색상이 적용되는거임 ㄹㅈㄷ!

근데 코드에 빨간줄이 뜨면서 android:tint로 쓰지말고 app:tint쓰라고 윽박지름

그래서 뭘 잘못한지도 모르고 일단 잘못했다고 빌면서 app:tint로 바꿔줬더니 빨간줄 철회됐다.

따로 일러스트 안키고 쉽게 색상 변경을 해내버림~~~!

그리고 이미지소스 여러개 넣는거보다 이렇게 바꾸는게 리소스?도 덜 들지 않을까?

완즈이 일석이조잖아?

..

여기서는 그런 표현을 쓰지 않습니다.


다른 사람들 과제 힐끔대기

금요일이기도하고,,

과제를 어느정도 다 끝내고 이제 더 디벨롭하는건 내 선택사항이라서,,

집중이 안되길래 걍 다른 분들 과제 하는거 힐끔댐

오지랖 재밌어~ 짜릿해~

내 안에 음침맨이 살고있는지 내가 게임하는거보다 관전하는거 조아해서 맨날 게임도

디코에서 친구들 게임하는거 방송틀어달라고 해서 방송 보는게 더 재밌는데

과제도 남이 코딩하는거 켜달라고해서 구경하니까 잼있음

그래서 그냥 다른 분들꺼 구경하면서~~

내가 미리 겪었던 오류 나오면 신나서 설명하고 ,,

모르는거 같이 해결해보고~

어려운개념 내가 조금 알고있는거 설명해드리고 했당~~~

냥냥짱뿌듯행~~


profile
오리너구리입니다

0개의 댓글