ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • UMC 2주차 코드
    카테고리 없음 2022. 3. 25. 16:13

    1.activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 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">
    
        <FrameLayout
            android:id="@+id/main_frm"
            android:layout_width="match_parent"
            android:layout_height="0dp"
    
            app:layout_constraintBottom_toTopOf="@id/main_player_cl"
            app:layout_constraintTop_toTopOf="parent">
    
    
        </FrameLayout>
    
    
        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/main_player_cl"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#F9F9F9"
            android:paddingVertical="5dp"
            app:layout_constraintBottom_toTopOf="@id/main_bnv">
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:orientation="vertical"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent">
    
                <TextView
                    android:id="@+id/main_player_cl_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="제목"
                    android:textColor="@color/black"
                    android:textSize="13sp" />
    
                <TextView
                    android:id="@+id/main_player_cl_singer"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="가수"
    
                    android:textSize="12sp" />
    
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent">
    
                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:src="@drawable/btn_miniplayer_previous" />
    
                <ImageView
                    android:id="@+id/main_miniplayer_btn"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:src="@drawable/btn_miniplayer_play" />
    
                <ImageView
                    android:id="@+id/main_pause_btn"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:src="@drawable/btn_miniplay_pause"
                    android:visibility="gone" />
    
    
                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:src="@drawable/btn_miniplayer_next" />
    
    
                <ImageView
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:layout_marginHorizontal="15dp"
                    android:src="@drawable/btn_miniplayer_go_list" />
    
    
            </LinearLayout>
    
    
        </androidx.constraintlayout.widget.ConstraintLayout>
    
    
        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/main_bnv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:itemIconSize="20dp"
            app:itemIconTint="@drawable/btm_color_selector"
            app:itemTextColor="@drawable/btm_color_selector"
            app:labelVisibilityMode="labeled"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:menu="@menu/bottom_nav_menu" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>

     

    2.activity_song.xml

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <ImageButton
            android:id="@+id/song_setting_ib"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginStart="20dp"
            android:layout_marginTop="40dp"
            android:background="@color/white"
            android:scaleType="fitXY"
            android:src="@drawable/btn_player_setting"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <ImageButton
            android:id="@+id/song_eq_ib"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginStart="10dp"
            android:background="@color/white"
            android:scaleType="fitXY"
            android:src="@drawable/btn_player_eq_off"
            app:layout_constraintBottom_toBottomOf="@+id/song_setting_ib"
            app:layout_constraintStart_toEndOf="@+id/song_setting_ib"
            app:layout_constraintTop_toTopOf="@+id/song_setting_ib" />
    
        <ImageButton
            android:id="@+id/song_down_ib"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginEnd="15dp"
            android:background="@color/white"
            android:scaleType="fitXY"
            android:src="@drawable/nugu_btn_down"
            app:layout_constraintBottom_toBottomOf="@+id/song_eq_ib"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="@+id/song_eq_ib" />
    
    
        <ImageButton
            android:id="@+id/song_more_ib"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginTop="15dp"
            android:background="@color/white"
            android:scaleType="fitXY"
            android:src="@drawable/btn_player_more"
            app:layout_constraintEnd_toEndOf="@+id/song_down_ib"
            app:layout_constraintStart_toStartOf="@+id/song_down_ib"
            app:layout_constraintTop_toBottomOf="@+id/song_down_ib" />
    
    
        <TextView
            android:id="@+id/song_music_title_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="제목"
            android:textColor="@color/black"
            android:textSize="18sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/song_more_ib" />
    
        <TextView
            android:id="@+id/song_singer_name_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="가수 이름"
            android:textColor="@color/black"
            android:textSize="14sp"
            app:layout_constraintEnd_toEndOf="@+id/song_music_title_tv"
            app:layout_constraintStart_toStartOf="@+id/song_music_title_tv"
            app:layout_constraintTop_toBottomOf="@+id/song_music_title_tv" />
    
        <ImageView
            android:id="@+id/song_singer_more_iv"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:src="@drawable/btn_main_arrow_more"
            app:layout_constraintBottom_toBottomOf="@+id/song_singer_name_tv"
            app:layout_constraintStart_toEndOf="@+id/song_singer_name_tv"
            app:layout_constraintTop_toTopOf="@+id/song_singer_name_tv" />
    
    
        <ImageView
            android:id="@+id/song_album_iv"
            android:layout_width="280dp"
            android:layout_height="280dp"
            android:layout_marginTop="20dp"
            android:scaleType="fitXY"
            android:src="@drawable/img_album_exp2"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.496"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/song_singer_more_iv" />
    
        <TextView
            android:id="@+id/song_music_lyrics_01_iv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="나라는 꽃가루에"
            android:textSize="14sp"
            app:layout_constraintEnd_toEndOf="@+id/song_album_iv"
            app:layout_constraintStart_toStartOf="@+id/song_album_iv"
            app:layout_constraintTop_toBottomOf="@+id/song_album_iv" />
    
        <TextView
            android:id="@+id/song_music_lyrics_02_iv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="눈이 따끔해 아야"
            android:textSize="14sp"
            app:layout_constraintEnd_toEndOf="@+id/song_music_lyrics_01_iv"
            app:layout_constraintStart_toStartOf="@+id/song_music_lyrics_01_iv"
            app:layout_constraintTop_toBottomOf="@+id/song_music_lyrics_01_iv" />
    
    
        <LinearLayout
            android:id="@+id/song_like_iv_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="25dp"
            android:orientation="horizontal"
            app:layout_constraintEnd_toEndOf="@+id/song_album_iv"
            app:layout_constraintStart_toStartOf="@+id/song_album_iv"
            app:layout_constraintTop_toBottomOf="@+id/song_music_lyrics_02_iv">
    
            <ImageView
                android:id="@+id/song_like_iv"
                android:layout_width="25dp"
                android:layout_height="25dp"
                android:src="@drawable/ic_my_like_off" />
    
            <ImageView
                android:id="@+id/song_unlike_iv"
                android:layout_width="25dp"
                android:layout_height="25dp"
                android:layout_marginStart="50dp"
                android:src="@drawable/btn_player_unlike_off" />
    
        </LinearLayout>
    
        <SeekBar
            android:id="@+id/song_progress_sb"
            android:layout_width="match_parent"
            android:layout_height="10dp"
            android:layout_marginStart="20dp"
            android:layout_marginEnd="20dp"
            android:layout_marginBottom="20dp"
            android:background="@null"
            android:paddingStart="0dp"
            android:paddingEnd="0dp"
            android:progress="0"
            android:progressBackgroundTint="@color/song_player_bg"
            android:progressTint="@color/song_player"
            android:thumb="@color/transparent"
            android:max="100000"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/song_like_iv_layout"  />
    
        <!--    <View-->
        <!--        android:id="@+id/song_progressbar_backgroud_view"-->
        <!--        android:layout_width="match_parent"-->
        <!--        android:layout_height="2dp"-->
        <!--        android:layout_marginStart="20dp"-->
        <!--        android:layout_marginTop="15dp"-->
        <!--        android:layout_marginEnd="20dp"-->
        <!--        android:background="@color/gray_color"-->
        <!--        app:layout_constraintEnd_toEndOf="parent"-->
        <!--        app:layout_constraintStart_toStartOf="parent"-->
        <!--        app:layout_constraintTop_toBottomOf="@+id/song_like_iv_layout" />-->
    
        <!--    <View-->
        <!--        android:id="@+id/song_progressbar_view"-->
        <!--        android:layout_width="50dp"-->
        <!--        android:layout_height="2dp"-->
        <!--        android:layout_marginStart="20dp"-->
        <!--        android:background="@color/select_color"-->
        <!--        app:layout_constraintBottom_toBottomOf="@+id/song_progressbar_backgroud_view"-->
        <!--        app:layout_constraintStart_toStartOf="parent"-->
        <!--        app:layout_constraintTop_toTopOf="@+id/song_progressbar_backgroud_view" />-->
    
        <TextView
            android:id="@+id/song_start_time_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00:00"
            android:textColor="@color/select_color"
            app:layout_constraintStart_toStartOf="@+id/song_progress_sb"
            app:layout_constraintTop_toBottomOf="@+id/song_progress_sb" />
    
    
        <TextView
            android:id="@+id/song_end_time_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="01:00"
            android:textColor="@color/gray_color"
            app:layout_constraintEnd_toEndOf="@+id/song_progress_sb"
            app:layout_constraintTop_toBottomOf="@+id/song_progress_sb" />
    
    
        <LinearLayout
            android:id="@+id/song_player_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            app:layout_constraintBottom_toTopOf="@+id/song_related_iv"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/song_progress_sb">
    
            <ImageView
                android:id="@+id/song_previous_iv"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginEnd="10dp"
                android:src="@drawable/btn_miniplayer_previous" />
    
            <ImageView
                android:id="@+id/song_miniplayer_iv"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:src="@drawable/btn_miniplayer_play" />
    
            <ImageView
                android:id="@+id/song_pause_iv"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:src="@drawable/btn_miniplay_mvpause"
                android:visibility="gone" />
    
            <ImageView
                android:id="@+id/song_next_iv"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginStart="10dp"
                android:src="@drawable/btn_miniplayer_next" />
    
        </LinearLayout>
    
    
        <ImageView
            android:id="@+id/song_repeat_iv"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginEnd="30dp"
            android:src="@drawable/nugu_btn_repeat_inactive"
            app:layout_constraintBottom_toBottomOf="@+id/song_player_layout"
            app:layout_constraintEnd_toStartOf="@+id/song_player_layout"
            app:layout_constraintTop_toTopOf="@+id/song_player_layout" />
    
        <ImageView
            android:id="@+id/song_random_iv"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginStart="30dp"
            android:src="@drawable/nugu_btn_random_inactive"
            app:layout_constraintBottom_toBottomOf="@+id/song_player_layout"
            app:layout_constraintStart_toEndOf="@+id/song_player_layout"
            app:layout_constraintTop_toTopOf="@+id/song_player_layout" />
    
        <ImageView
            android:id="@+id/song_instagram_iv"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_marginStart="20dp"
            android:layout_marginBottom="20dp"
            android:src="@drawable/btn_actionbar_instagram"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    
    
        <ImageView
            android:id="@+id/song_list_iv"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_marginEnd="20dp"
            android:layout_marginBottom="20dp"
            android:src="@drawable/btn_player_go_list"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent" />
    
        <ImageView
            android:id="@+id/song_related_iv"
            android:layout_width="80dp"
            android:layout_height="30dp"
            android:layout_marginBottom="20dp"
            android:src="@drawable/btn_player_related"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    
    
    </androidx.constraintlayout.widget.ConstraintLayout>

     

    3.SongActivity.kt

    package com.example.flo
    
    import android.os.Bundle
    import android.os.PersistableBundle
    import android.view.LayoutInflater
    import android.view.View
    import androidx.appcompat.app.AppCompatActivity
    import com.example.flo.databinding.ActivitySongBinding
    
    
    class SongActivity : AppCompatActivity(){
    
        lateinit var binding : ActivitySongBinding
        //R.id.song_music_title_tv.text=intent.getStringExtra
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            binding= ActivitySongBinding.inflate(layoutInflater)
            setContentView(binding.root)
            binding.songDownIb.setOnClickListener {
                finish()
            }
    
            binding.songMiniplayerIv.setOnClickListener {
                setPlayerStatus(false)
            }
    
            binding.songPauseIv.setOnClickListener {
                setPlayerStatus(true)
            }
    
        }
    
    
        private fun setPlayerStatus (isPlaying : Boolean){
    
            if(isPlaying){
                binding.songMiniplayerIv.visibility = View.GONE
                binding.songPauseIv.visibility = View.VISIBLE
    
            } else {
                binding.songMiniplayerIv.visibility = View.VISIBLE
                binding.songPauseIv.visibility = View.GONE
    
            }
    
        }
    
    }

     

    4.AlbumFragment.kt

    package com.example.flo
    
    import android.os.Bundle
    import android.view.LayoutInflater
    import android.view.View
    import android.view.ViewGroup
    import androidx.fragment.app.Fragment
    import androidx.fragment.app.FragmentActivity
    import com.example.flo.databinding.FragmentAlbumBinding
    
    class AlbumFragment : Fragment() {
    
        lateinit var binding : FragmentAlbumBinding
    
        override fun onCreateView(
            inflater: LayoutInflater,
            container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View? {
            binding= FragmentAlbumBinding.inflate(inflater,container,false)
    
            binding.albumBackIv.setOnClickListener {
                (context as MainActivity).supportFragmentManager.beginTransaction().replace(R.id.main_frm,HomeFragment()).commitAllowingStateLoss()
            }
    
            return binding.root
        }
    
    }

     

    5.MainActivity.kt

    package com.example.flo
    
    import android.content.Intent
    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import android.widget.TextView
    import com.example.flo.databinding.ActivityMainBinding
    
    class MainActivity : AppCompatActivity() {
    
        lateinit var binding: ActivityMainBinding
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            binding = ActivityMainBinding.inflate(layoutInflater)
            setContentView(binding.root)
    
    
            binding.mainPlayerCl.setOnClickListener{
                //startActivity(Intent(this,SongActivity::class.java))
                //intent로 값 넘기기
    //            val title= R.id.main_player_cl_title.text.toString()
    //            val singer=R.id.main_player_cl_singer.text.toString()
    
                val intent = Intent(this,SongActivity::class.java)
    //            intent.putExtra("Title",title)
    //            intent.putExtra("Singer",singer)
                startActivity(intent)
            }
    
    
            initBottomNavigation()
    
        }
    
        private fun initBottomNavigation(){
    
            supportFragmentManager.beginTransaction()
                .replace(R.id.main_frm, HomeFragment())
                .commitAllowingStateLoss()
    
            binding.mainBnv.setOnItemSelectedListener{ item ->
                when (item.itemId) {
    
                    R.id.homeFragment -> {
                        supportFragmentManager.beginTransaction()
                            .replace(R.id.main_frm, HomeFragment())
                            .commitAllowingStateLoss()
                        return@setOnItemSelectedListener true
                    }
    
                    R.id.lookFragment -> {
                        supportFragmentManager.beginTransaction()
                            .replace(R.id.main_frm, LookFragment())
                            .commitAllowingStateLoss()
                        return@setOnItemSelectedListener true
                    }
                    R.id.searchFragment -> {
                        supportFragmentManager.beginTransaction()
                            .replace(R.id.main_frm, SearchFragment())
                            .commitAllowingStateLoss()
                        return@setOnItemSelectedListener true
                    }
                    R.id.lockerFragment -> {
                        supportFragmentManager.beginTransaction()
                            .replace(R.id.main_frm, LockerFragment())
                            .commitAllowingStateLoss()
                        return@setOnItemSelectedListener true
                    }
                }
                false
            }
        }
    }

    6.HomeFragment.kt

    package com.example.flo
    
    import android.os.Bundle
    import android.view.LayoutInflater
    import android.view.View
    import android.view.ViewGroup
    import androidx.fragment.app.Fragment
    import com.example.flo.databinding.FragmentHomeBinding
    
    class HomeFragment : Fragment() {
    
        lateinit var binding: FragmentHomeBinding
    
        override fun onCreateView(
            inflater: LayoutInflater,
            container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View? {
            binding = FragmentHomeBinding.inflate(inflater, container, false)
    
            binding.homeAlbumImgIv1.setOnClickListener {
                (context as MainActivity).supportFragmentManager.beginTransaction().replace(R.id.main_frm,AlbumFragment()).commitAllowingStateLoss()
            }
            return binding.root
        }
    }

    댓글

Designed by Tistory.