[TIL] 0704

Anna·2024년 7월 9일

[TIL]Android

목록 보기
15/34
post-thumbnail

동그란 이미지

ImageView → ImageButton 으로 변경

android:scaleType android:clipToOutline 사용

xml 파일 수정

android:scaleType="centerCrop"
android:background="@drawable/round_backgroud_border_black"
android:clipToOutline="true"

@drawable/round_backgroud_border_black 파일 추가

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

    <corners android:radius="16dp"/>
</shape>

액티비티 1차 구현

메인 페이지에서 클릭하면 디테일 페이지로 넘어가면서 해당 카테고리만 보여주기

private fun initImageButton(view:View)
    {
//
//        val koreanFood = findViewById<ImageButton>(R.id.ib_koreanfood)
//        val chineseFood = findViewById<ImageButton>(R.id.ib_chinesefood)
//        val westernFood = findViewById<ImageButton>(R.id.ib_westernfood)
//        val japaneseFood = findViewById<ImageButton>(R.id.ib_japanesefood)
//

        when(view.getId())
        {
            R.id.ib_koreanfood ->
            {
                val intent = Intent(this, DetailActivity::class.java)
                intent.putExtra("food","koreanFood")
                startActivity(intent)
            }

            R.id.ib_chinesefood ->
            {
                val intent = Intent(this, DetailActivity::class.java)
                intent.putExtra("food","chineseFood")
                startActivity(intent)
            }

            R.id.ib_westernfood ->
            {
                val intent = Intent(this, DetailActivity::class.java)
                intent.putExtra("food","westernFood")
                startActivity(intent)
            }

            R.id.ib_japanesefood ->
            {
                val intent = Intent(this, DetailActivity::class.java)
                intent.putExtra("food","japaneseFood")
                startActivity(intent)
            }
        }
    }

코드 리뷰 수정

함수명 : 동사로 시작

fun snackBar → fun showSnackBar

snackbar random

when 구문을 사용하여 메시지 5개를 랜덤으로 띄워준다.

val showSnackBar = findViewById<Button>(R.id.btn_snackbar)
        snackbarBtn.setOnClickListener {

            val random = Random
            val num = random.nextInt(5)

            val message = when(num)
            {
                0 -> getString(R.string.main_snackbar_not_full)
                1 -> getString(R.string.main_snackbar_not_curious)
                2 -> getString(R.string.main_snackbar_dawn)
                3 -> getString(R.string.main_snackbar_diet)
                else -> getString(R.string.main_snackbar_bbb)

            }

            val snack1 = Snackbar.make(it, message,Snackbar.LENGTH_LONG)
                .setAction("종료하세요~")
            {
                finish()
            }
            
            snack1.setTextColor(Color.BLACK)
            snack1.setBackgroundTint(Color.WHITE)
            snack1.animationMode = Snackbar.ANIMATION_MODE_FADE //스낵바가 아래에서 위로 올라오는 것과 같은 애니메이션 모드 변경
            snack1.show()
        }

overridePendingTransition 임시

페이지 넘어갈 때 애니메이션 추가해주기 (이지민님 담당)

main to mypage.xml

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

    <translate
        android:duration = "300"
        android:fromXDelta="100%"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXDelta="0%"
        />

</set>

none.xml

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

    <translate
        android:duration = "500"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toYDelta="0%"
        android:toXDelta="0%"
        />

</set>
overridePendingTransition(R.anim.main_to_chinesefood, R.anim.none)

0개의 댓글