๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ129 Android::๊ณ ์์ด๊ฒ์::๋ ๋ฒจ๋์์ธ::๋ฐ์ดํฐ๋ฒ ์ด์ค:: SharedPreference [ ๋ก๊ทธ์ธ / ํ์๊ฐ์ ๊ตฌํ ํ๋ฉด ] - ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ฆฌํฉ๋๋ค. - ์ค๋ณต ์ฒดํฌ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. - ํ ๋ฒ ๋ก๊ทธ์ธ ํ๋ฉด ์๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ด ์๋๋ฐ ์ด๋ SharedPreference ๋ก ๊ตฌํํ์์ต๋๋ค. [ ๊ฒ์ ํ๋ฉด ] - ์ฌ์ฉ์์ ์ ์๋ SharedPreference๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฌ ํ 5๊ฐ๋ง ํ์ ํฉ๋๋ค. - ์ ์์ SharedPreference๋ ๊ฐ ๋ ๋ฒจ ๋ณ๋ก ์์ต๋๋ค. - ํ์ด๋จธ ์๊ฐ์ ๊ฐ๋ ์ฑ์ฐ๊ณ , ์ผ์ ์ ์๋ฅผ ๋์ด์ผ ๋ค์ ๋ ๋ฒจ๋ก ๋์ด๊ฐ๋๋ค. - ํ ๋ฒ ํด๋ฆญ์ ์ํ๋ ๊ณ ์์ด๋ bounce ์ ๋๋ฉ์ด์ ์ด, ๋ ๋ฒ์ด์์ ํด๋ฆญ์ ์ํ๋ ๊ณ ์์ด๋ blink ์ ๋๋ฉ์ด์ ์ด ์ ์ฉ๋ฉ๋๋ค. - ํ์ด๋จธ๋ onPause์ ๋ฉ์ถฐ๋๊ณ ๋ค์ ์ฌ์คํ ํ๋๋ก ๊ตฌํํ์์ต๋๋ค. 2020. 8. 13. Android::์ฐ๋ ๋, ํธ๋ค๋ฌ ๊ณต๋ถํ๊ธฐ + ๊ณ ์์ด ์ฐ์ ์ฃผ๊ธฐ ๊ฒ์ โ ์ฐ๋ ๋ ์ฃผ์ ์ ๋ฆฌ ↓ ๋ง์ ๋์์ด ๋ ๋ธ๋ก๊ทธ https://brunch.co.kr/@mystoryg/84 โ ๊ฒ์ ์์ฑ ๋ชจ์ต โ ๊ฒ์ ๊ธฐํ์ 2020. 8. 6. Android::SwipeMenuList → ๋ ์ด์์์ ๊ตฌ์ฑํ๋ฉด์ button์ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋ก์ํค๋ ๊ฒ. " "์์ ๋ค์ด๊ฐ๋๊ฒ java ์์ ์ฌ์ฉํ ํจ์ ๋ช . ๋ง์ฝ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํด๋นํ๋ " "ํจ์๋ฅผ ์ฐพ์ ์คํ์ ํ๊ฒ ๋๋ค. https://copycoding.tistory.com/47 ViewHolder? ๋ทฐ๋ค์ ํ๋์ ๊ผฝ์ ๋๋ฏ์ด ๋ณด๊ดํ๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค. ๊ฐ๊ฐ์ Row๋ฅผ ๊ทธ๋ ค๋ผ ๋, ๊ทธ ์์ ์์ ฏ๋ค์ ์์ฑ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํจํด. ์ฃผ๋ก ListView์ ํผํฌ๋จผ์ค๋ฅผ ๋์ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. https://uroa.tistory.com/6 ↓ ๊ณต์ ๋ฌธ์๋ ์ฐธ๊ณ . https://developer.android.com/guide/topics/ui/layout/recyclerview#ViewHolder Dp์ PX ์ฐจ์ด inma.tistory... 2020. 8. 1. Android::RecyclerView, Lottie, Animation ์ฌ์ฉํด์ ๋ฉ๋ชจ์ฅ ์ฑ ์์ ํ๊ธฐ โ 1์ฐจ ์์ฑ ๋์์ โ ์ฝ๋ activity_main.xml CustomAdapter package com.example.rvmemoapplication; import android.content.Context; import android.content.Intent; import android.text.Layout; import android.util.TypedValue; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageButton; .. 2020. 7. 30. OpenGL๋ก ๋ฐฐ์ฐ๋ 3์ฐจ์ ์ปดํจํฐ ๊ทธ๋ํฝ์ค::6์ฅ&์ฐ์ต๋ฌธ์ โ 6์ฅ ์ฐ์ต๋ฌธ์ 1. ๊ท์น์ ์ธ ๊ณก๋ฉด์ผ์๋ก ํ๋ฉด์ ํํํ๋ ๋ฐ ๋์ฑ ๋ง์ ์์ ๋ค๊ฐํ์ด ์ฌ์ฉ๋๋ค. (True/False) 2. 3์ฐจ์ ๊ณต๊ฐ์์ ์์์ ๋ค ์ ์ ์ฐ๊ฒฐํ ๋ค๊ฐํ์ ํญ์ ํ๋ฉด์ด๋ค. (True/False) → 3 ์ ์ ์ฐ๊ฒฐํ ๋ค๊ฐํ์ด ํญ์ ํ๋ฉด์ด๊ณ , ๋น ๊ณ์ฐ๋ฑ์ ํ ๋ ธ๋ฉ ๋ฒกํฐ๊ฐ ํ๋ฉด์์ ์ ํํ ๋์ค๊ธฐ ๋๋ฌธ์ ์ผ๊ฐํ๋ชจ์์ ๋ง์ด ์ด๋ค. 3. ์ค๋ฅธ์ ์ขํ๊ณ์ ์ผ์ ์ขํ๊ณ์ z์ถ ๋ฐฉํ์ ํญ์ ์๋ก ๋ฐ๋์ด๋ค. (True/False) 4. ๋ฒกํฐ A,B,C๊ฐ ์์ ๋ C= 5A+B/3์ผ๋ก ํ์๋๋ค๋ฉด C๋ A,B์ ์ ํ๋ ๋ฆฝ์ด๋ค. (True/False) → ์ ํ๋ ๋ฆฝ์ ๋์ผ๋ก ๋ณผ๋ ์ง๊ตํ๋ ๊ฒ ๊ฐ์ ๊ฑธ๋ก, ์ ๋ ๊ฒ ํํ ๋์ง ์๋๋ค. 5. ๋๊ฐ์ ์์๊ฐ 1,2,1,1์ธ ํฌ๊ธฐ ์กฐ์ ํ๋ ฌ์ ๊ท ๋ฑ ํฌ๊ธฐ ์กฐ์ ์ ํด๋นํ๋ค... 2020. 7. 26. Android::๋ฆฌ์คํธ๋ทฐ์ฌ์ฉํด์ ๋ฉ๋ชจ์ฅ๋ง๋ค๊ธฐ โ ์์ฑํ ๋ทฐ [O] ์๋ก์ด ๋ฉ๋ชจ ์ถ๊ฐ [O] ๋ฉ๋ชจ ํด๋ฆญ์ ํธ์ง [O] ๋ฉ๋ชจ ๋กฑํด๋ฆญ์ ์ญ์ ๊ฐ๋ฅ [X] ๊ฒ์ โ ์์ฑํ ์ฝ๋ MainActivity package com.example.memoapplication; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android... 2020. 7. 24. Android::Java ๋ฌธ๋ฒ +๏ผ โ Sp, dp https://velog.io/@rjsdnqkr1/SP%EC%99%80-DP%EC%9D%98-%EC%B0%A8%EC%9D%B4 DP ( Density - Independent Pixels) Ui ๋ ์ด์์์ ์ ์ํ ๋, ๋ ์ด์์ ์น์๋ ์์น๋ฅผ ์ง์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋จ์. ํฝ์ ๋ ๋ฆฝ ๋จ์์ด๋ฉฐ ํ๋ฉด์ ํฌ๊ธฐ๊ฐ ๋ฌ๋ผ๋ ๋์ผํ ๋น์จ๋ก ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์๋๋ก์ด๋์์ ์ ์ํ ๋จ์์ด๋ค. SP (Scale - Independent Pixels) ๋ ์ด์์์ ์ ์ํ ๋ ํ ์คํธ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋จ์ → sp๋ TextView์ textSize๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉํ๋ค. Dp๋ ํ๋ฉด์ ๋ฐ๋ผ ์ฌ์ด์ฆ๊ฐ ๋ฌ๋ผ์ง์ง ์๊ณ ๊ณ ์ ๋ ๊ฐ์ ๊ฐ๋๋ค. Sp๋ ์์คํ ์ ์ฌ์ด์ฆ์ ๋ฐ๋ผ TextView๊ฐ ์์์ง๊ฑฐ๋ ์ปค์ง๋ค... 2020. 7. 21. Android:: countDownTimer & Lifecycle โ CountDownTimer https://stackoverflow.com/questions/5738362/pause-countdowntimer-in-android-when-activity-is-not-in-front https://iw90.tistory.com/127 https://developer.android.com/reference/android/os/CountDownTimer // 30์ด๋ฅผ 1์ด ๋จ์๋ก ์นด์ดํธ ๋ค์ด ํ๋ ์นด์ดํธ๋ค์ดํ์ด๋จธ new CountDownTimer(30000, 1000) { public void onTick(long millisUntilFinished) { mTextField.setText("seconds remaining: " + millisUntilFinished / .. 2020. 7. 21. Android::LifeCycle ํ์ฉํ์ฌ App๋ง๋ค๊ธฐ โ ์์ฑํ ๊ฒ์ ๋ทฐ โ ์ฝ๋ 1) MainActivity package com.example.colortimergame_2; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.os.CountDownTimer; import android.util.Log; import android.view.View; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.u.. 2020. 7. 21. OpenGL๋ก ๋ฐฐ์ฐ๋ 3์ฐจ์ ์ปดํจํฐ ๊ทธ๋ํฝ์ค::Project_1/4 โ ํ๋ก์ ํธ ๋ชฉํ 1) S ํด๋ฆญ์์ Solid ๋ ๋๋ง 2) W ํด๋ฆญ์์ Wire ๋ ๋๋ง 3) ๋ง์ฐ์ค ์์ง์์ผ๋ก ์์ ๋ฐ๊พธ๊ธฐ 4) ํ์๋ฅผ ๊ทธ๋ฆฐ ํ ๊ทธ ์์ ๋ฌผ์ฒด๋ฅผ ์ฌ๋ ค ๋๋๋ค. โ ํ๋ก์ ํธ ๋์์ ๊ฒฐ๊ณผ โ ํ๋ก์ ํธ ์ฝ๋ #include #include #include #define WIDTH 400 #define HEIGHT 400 GLboolean IsWire = true; GLboolean IsSolid = true; int ViewX = 0, ViewY = 0;// ๋ง์ฐ์ค ์์ง์์ ๋ฐ๋ผ ์์ ์ ๋ฐ๊พธ๊ธฐ ์ํ ๋ณ์ void InitLight() { GLfloat mat_diffuse[] = { 0.5,0.4,0.3,1.0 }; GLfloat mat_specular[] = { 1.0,1.0,1.0,1.0 .. 2020. 7. 21. OpenGL๋ก ๋ฐฐ์ฐ๋ 3์ฐจ์ ์ปดํจํฐ ๊ทธ๋ํฝ์ค::5์ฅ&์ฐ์ต๋ฌธ์ โ 5์ฅ ์ฐ์ต๋ฌธ์ 1. ์ ๊ธฐ ํจ๋์ ์ํ ํฐ์น ์คํฌ๋ฆฐ์์๋ ํ๋ฉด ํ๋ฉด์ ๋ง์ ์ธ๊ฒ ๋๋ฅด์ง ์์๋ ์์น๊ฐ ๊ฐ์ง๋๋ค. (True / False) → ๊ดํ ํจ๋์ ๋น์ ์๊ฐ๋ฝ์ด ๊ฐ๋ฆฌ๋ฉด ๋๋ฅธ ๊ฑธ๋ก ๊ฐ์ง๋ฅผ ํ์ง๋ง ์ ๊ธฐ ํจ๋์ ๋ง์ด ๋๋ฆฌ๊ณ ๋ฟ๋ ๊ฒ์ ์ํด์ ์์น๋ฅผ ๊ฐ์งํ๊ธฐ ๋๋ฌธ์ ํ๋ฉด์ ๋ง์ ์ธ๊ฒ ๋๋ฌ์ผ ํ๋ค. 2. ์ ๋ ฅ ์ฅ์น์ ์ ํ์ ๊ดํ ํ ๋ฆฌํ์คํธ ๋ชจ๋์์๋ ์ฌ์ฉ์๊ฐ ์ฃผ๋๊ถ์ ์ฅ๋ค. (True / False) →์ด๋ฒคํธ ๋ชจ๋์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅ ์ฅ์น ์ ํ์ ์ฃผ๋๊ถ์ ์ฅ ์ ์๋ค. 3. ์ง์์์ ์ฝ๋ฐฑ ํจ์๋ฅผ ๋ฑ๋กํ๋ ๋ช ๋ น์ด๋ ์๋ก ์์๊ฐ ๋ฐ๋์ด๋ ๋๋ค. (True / False) → ํด๋น ์ด๋ฒคํธ๊ฐ ๋ฐ์์, ํด๋น ์ด๋ฒคํธ ์ฝ๋ฐฑํจ์์ ๋ฑ๋ก๋ ๊ฒ์ด ์คํ๋๋ ๊ฒ์์ผ๋ก ์์๊ฐ ๋ฐ๋์ด๋ ์๊ด ์๋ค. 4. ์ง์ ํ๋ก๊ทธ๋จ์์๋ ์ฝ.. 2020. 7. 20. Android::Awesome UI (์๋ ์ฒจ๋ถ๋ ํ์ผ์ ๋ชจ๋ GIF ํ์ผ์ ๋๋ค) โ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ๋ค ์ธ๋ ํ๋ ๋ฐฉ๋ฒ 1) Gradle Scripts → bulild.gradle(Module:app) → dependecies์ implementation ํ ' ' ์ถ๊ฐ. ๋ณดํต์ ๊นํ ์ ๋ณด์ ์ด๋ฐ๊ฒ ๋ช ์ ๋์ด ์๋ค. 2) layout์์ ์ํ์ฉ 3) ์ถ๊ฐ์ ์ธ ์๋ฐ ํด๋์ค๊ฐ ํ์ํ ๋๋ ๋ง๋ ๋ค. โ MagicButton : ๋๊ทธ๋ผ๋ฏธ์์ ๊ธธ์ด์ง๋๊ฑฐ https://github.com/bloderxd/MagicButton/blob/master/app/src/main/res/layout/activity_main.xml โ StylishButton : submit ๋ฒํผ์ ์ ๋๋ฉ์ด์ ํจ๊ณผ https://github.com/SparkYuan/Submi.. 2020. 7. 14. ์ด์ 1 ยทยทยท 7 8 9 10 11 ๋ค์