๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Android23

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.
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.
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.
Android:: RelativeLayout ๊ณผ ConstraintLayout์˜ ์ฐจ์ด โ— ConstraintLayout RelativeLayout์˜ "์ƒ๋Œ€์  ์œ„์น˜ ๊ด€๊ณ„์— ๋”ฐ๋ฅธ ๋ฐฐ์น˜" ํŠน์„ฑ + LinearLayout์˜ "๊ฐ€์ค‘์น˜(weight)๊ฐ€ ๊ฐ€์ง„ ์žฅ์ " + chain ์‚ฌ์šฉ์œผ๋กœ ๋‹ค๋ฅธ ๋ ˆ์ด์•„์›ƒ ์—†์ด "์š”์†Œ๋“ค์„ ๊ทธ๋ฃนํ™”" - ConstraintLayout๋Š” ์„ฑ๋Šฅํ–ฅ์ƒ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค → ์Šˆํ‰์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ด๋ฃฐ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—! - ConstraintLayout๋Š” ๋ ˆ์ด์•„์›ƒ์— ๋ฐฐ์น˜๋˜๋Š” ๋ทฐ๋“ค์— ์—ฌ๋Ÿฌ ์ œ์•ฝ(Constraint)์„ ์ ์šฉํ•˜์—ฌ ๊ฐ ๋ทฐ์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ • โ— ConstraintLayout์†์„ฑ ๋ฐ ์„ค๋ช… ์†์„ฑ ์„ค๋ช… layout_constraintLeft_toLeftOf ๋ทฐ์˜ ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฅผ ๋Œ€์ƒ ๋ทฐ์˜ ์™ผ์ชฝ ์‚ฌ์ด๋“œ์— ๋งž์ถค layout_constraintLeft_toRightOf ๋ทฐ์˜ ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฅผ ๋Œ€์ƒ.. 2020. 7. 7.
Android:: TableLayout ๊ณผ GridLayout์˜ ์ฐจ์ด์™€ ๊ณ„์‚ฐ๊ธฐ View ๋งŒ๋“ค๊ธฐ 1) Table Layout๊ณผ GridLayout ์ฐจ์ด ๊ทธ๋ฆฌ๋“œ๋Š” fill์ด๋ž‘ span ์ด์šฉํ•ด์„œ ์…€ ๋ณ‘ํ•ฉ ์ˆ˜ํ–‰ // row, column, ์ธ๋ฑ์Šค ์ ‘๊ทผ ํŒ”๋ ˆํŠธ์—์„œ ๋Œ์–ด ์“ฐ๊ธฐ ๊ฐ€๋Šฅ. ํ…Œ์ด๋ธ”์€ weight๋ž‘ span ์ด์šฉํ•˜์—ฌ ์…€ ๋ณ‘ํ•ฉ ์ˆ˜ํ–‰ // ์˜ ๋ฐ˜๋ณต,๋ฐ์ดํ„ฐ ์–‘์ด ์ ์€ ๊ฒฝ์šฐ์— ์œ ์šฉ. ํ…Œ์ด๋ธ” ๋ ˆ์ด์•„์›ƒ์€ ๋ชจ๋“ ํ–‰์ด ์ธ์Šคํ„ด์Šคํ™” (tablerow) ๋˜์–ด์•ผ ํ•˜๊ณ , ์žฌํ™œ์šฉ ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ‘œ์‹œํ•  ๋ฐ์ดํ„ฐ ์ ์€ ๊ฒฝ์šฐ ์œ ์šฉ. ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ์€ ํ•ญ๋ชฉ์„ ๊ทธ๋ฆฌ๋“œ์— ๋ฐฐ์—ดํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ทฐ์™€ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ์˜ ๋ชฉ์ ์€, ์–ด๋Œ‘ํ„ฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ํ‘œ์‹œ๋œ ๊ฐ ํ•ญ๋ชฉ์„ ํƒ์ƒ‰ํ•˜๊ณ  ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋™์ผํ•œ UI์˜ ๊ฒฝ์šฐ GridLayout์€ ์ผ๋ฐ˜์ ์œผ๋กœ TableLayout๋ณด๋‹ค ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ ๊ฒŒ ์†Œ์š”๋œ๋‹ค 2) Tabl.. 2020. 7. 7.
Android::Layout 1) Layout(๋ ˆ์ด์•„์›ƒ) ์ด๋ž€ ๋ ˆ์ด์•„์›ƒ์€ ์•ฑ์—์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์œ„ํ•œ ๊ตฌ์กฐ ( ์˜ˆ: Activity)๋ฅผ ์ •์˜ํ•œ๋‹ค. ๋ ˆ์ด์•„์›ƒ์˜ ๋ชจ๋“  ์š”์†Œ๋Š” View์™€ ViewGroup ๊ฐ์ฒด์˜ ๊ณ„์ธต์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ๋œ๋‹ค. View๋Š” (์ผ๋ฐ˜์ ์œผ๋กœ) ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ณ  ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ทธ๋ฆฐ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ View ๊ฐ์ฒด๋Š” '์œ„์ ฏ'์ด๋ผ๊ณ  ํ•˜๊ณ , ์—ฌ๋Ÿฌ ํ•˜์œ„ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์‹œ๋กœ Button, Textview๊ฐ€ ์žˆ๋‹ค. ViewGroup์€ View์™€ ๋‹ค๋ฅธ ViewGroup๊ฐ์ฒด์˜ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ํˆฌ๋ช… ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค. Viewgroup๊ฐ์ฒด๋Š” ๋Œ€๊ฒŒ '๋ ˆ์ด์•„์›ƒ'์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ , ๋‹ค์–‘ํ•œ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ์œ ํ˜• ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์‹œ๋กœ LinearLayout, ConstraintLayout์ด ์žˆ๋‹ค... 2020. 7. 2.
Android::Manifest 1. Manifest๋ž€? ๋ชจ๋“  ์•ฑ ํ”„๋กœ์ ํŠธ๋Š” ํ”„๋กœ์ ํŠธ ์†Œ์Šค ์„ธํŠธ์˜ ๋ฃจํŠธ์— AndroidManifest.xml ํŒŒ์ผ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋ฉ”๋‹ˆํŒจ์ŠคํŠธ ํŒŒ์ผ์€ Android ๋นŒ๋“œ ๋„๊ตฌ, Android ์šด์˜์ฒด์ œ ๋ฐ Google play์— ์•ฑ์— ๊ด€ํ•œ ํ•„์ˆ˜ ์ •๋ณด๋ฅผ ์„ค๋ช…ํ•œ๋‹ค. ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ(์•กํ‹ฐ๋น„ํ‹ฐ, ์„œ๋น„์Šค, ์ฝ˜์ฒธ์ธ  ๊ณต๊ธ‰์ž, ๋ธŒ๋กœ๊ทธ์บ์ŠคํŠธ ์ˆ˜์‹ ์ž) ์— ๋Œ€ํ•œ ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ธํ…ํŠธ ํ•„ํ„ฐ(Intent Filter)์™€ ๊ถŒํ•œ(Permission) ์„ ์‚ฌ์šฉํ•ด ์ด๋“ค์ด ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์–ด๋–ป๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ๋˜ํ•œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(์•„์ด์ฝ˜์ด๋‚˜ ํ…Œ๋งˆ๋“ฑ์˜)๋ฅผ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ์†์„ฑ์„ ๋น„๋กฏํ•ด, ๋ณด์•ˆ ์„ค์ •๊ณผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€์ ์ธ ์ตœ์ƒ์˜ ๋…ธ๋“œ ์—ญ์‹œ ์ œ๊ณต.. 2020. 7. 1.