๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿค–Android (57)

ruriruriya

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - ActionBar menu ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

Action Bar๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ํ™”๋ฉด ์ƒ๋‹จ์— ์žˆ๋Š” ์ค‘์š”ํ•œ UI ์š”์†Œ์ด๋‹ค. ์ฃผ๋กœ ์•ฑ์˜ ์ œ๋ชฉ, ์•ก์…˜ ๋ฒ„ํŠผ, ํƒ์ƒ‰ ๊ธฐ๋Šฅ ๋“ฑ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ฑ์˜ ๊ธฐ๋Šฅ๊ณผ ๋‚ด๋น„๊ฒŒ์ด์…˜์„ ์ œ๊ณตํ•œ๋‹ค. 1. res-values-themes-themes.xml ์ˆ˜์ • ์Šคํƒ€์ผ ํƒœ๊ทธ์—์„œ parent ์†์„ฑ์„ parent="Theme.MaterialComponents.DayNight.DarkActionBar" ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ๋‚˜์ดํŠธ ๋ฒ„์ „๋„ ๋˜‘๊ฐ™์ด ์ˆ˜์ •ํ•œ๋‹ค. 2. res-menu ๋ฆฌ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ 3. main.xml ๋ฉ”๋‰ด ์•„์ดํ…œ ์ถ”๊ฐ€ ๋ฉ”๋‰ด ์•„์ดํ…œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. 4. Common Attributes ์ˆ˜์ • id, title, icon, showAsAction ๋“ฑ์„ ์ˆ˜์ •ํ•œ๋‹ค. ๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์ด ์•„์ด์ฝ˜์ด..

๐Ÿค–Android/Java 2024. 1. 2. 14:17
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ ์‹œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์œ„ํ•œ Volley ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Volley๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” HTTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. Google์ด ๊ฐœ๋ฐœํ•œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ์š”์ฒญ ๋ฐ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, JSON, ์ด๋ฏธ์ง€ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ค๊ณ  ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. Volley ์ฃผ์š” ํŠน์ง• ๊ฐ„๋‹จํ•œ API: ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด API๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์‰ฝ๋‹ค. ์š”์ฒญ์˜ ์ž๋™ ๊ด€๋ฆฌ: Volley๋Š” ์š”์ฒญ ๋Œ€๊ธฐ์—ด์„ ๊ด€๋ฆฌํ•˜๊ณ , ์บ์‹œ ๋ฐ ์žฌ์‹œ๋„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ์š”์ฒญ์„ ์ตœ์ ํ™”ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋™์‹œ ์š”์ฒญ ์ฒ˜๋ฆฌ: ๋ณ‘๋ ฌ๋กœ ์—ฌ๋Ÿฌ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. ์บ์‹œ ์ง€์›: ์บ์‹œ๋ฅผ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ์ด๋ฏธ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ํ•„์š” ์‹œ์— ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ..

๐Ÿค–Android/Java 2023. 12. 30. 11:13
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์—์„œ ๋ช‡๋ฒˆ ์งธ ํ–‰์„ ๋ˆŒ๋ €๋Š” ์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š”, ์–ด๋Œ‘ํ„ฐ ํ•จ์ˆ˜(getAdapterPosition())

getAdapterPosition()์€ RecyclerView.ViewHolder์—์„œ ํ˜„์žฌ ์•„์ดํ…œ์˜ ์–ด๋Œ‘ํ„ฐ ์œ„์น˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์—์„œ ํ˜„์žฌ ์•„์ดํ…œ์˜ ์œ„์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ ์•„์ดํ…œ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์•„์ดํ…œ์˜ ์œ„์น˜๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. getAdapterPosition() ์นด๋“œ๋ทฐ๋ฅผ ์„ ํƒํ•  ๋•Œ ํ•ด๋‹น ์นด๋“œ๋ทฐ๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. getAdapterPostion()์„ index ๋ณ€์ˆ˜์— ๋‹ด์€ ๋‹ค์Œ์— ํ•ด๋‹น ArrayList๋ฅผ get()์œผ๋กœ ๋ฐ›์„ ๋•Œ index๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜๋Š” Intent์˜ putExtra() ํ•จ์ˆ˜๋กœ ์ธ๋ฑ์Šค๋„๊ฐ™์ด ๋ณด๋‚ธ๋‹ค. cardView.setOnClickListener(new View.OnClickListener()..

๐Ÿค–Android/Java 2023. 12. 30. 10:08
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - RecyclerView Adapter์—์„œ ์ƒˆ๋กœ์šด ์•กํ‹ฐ๋น„ํ‹ฐ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•(Context)

์ฝ˜ํ…์ŠคํŠธ(Context)๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „์—ญ ์ •๋ณด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•กํ‹ฐ๋น„ํ‹ฐ(Activity), ์„œ๋น„์Šค(Service), ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜(Application) ๋“ฑ์˜ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๋ชจ๋‘ ์ฝ˜ํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ฝ˜ํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค, ํด๋ž˜์Šค, ์•ฑ ํ™˜๊ฒฝ ์ •๋ณด ๋“ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋Œ‘ํ„ฐ(Adapter) ํด๋ž˜์Šค๋Š” ์ปจํ…์ŠคํŠธ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์ง€๋งŒ, ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์ฝ˜ํ…์ŠคํŠธ๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ ์–ด๋Œ‘ํ„ฐ๋Š” ์•กํ‹ฐ๋น„ํ‹ฐ(Activity)๋‚˜ ์ปจํ…์ŠคํŠธ๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๋‹ค๋ฅธ ์•ˆ๋“œ๋กœ์ด๋“œ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์ฝ˜ํ…์ŠคํŠธ๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ ์‚ฌ์šฉํ•œ๋‹ค. 1. Adapter ํด๋ž˜์Šค ๋‚ด ๋ฉค๋ฒ„๋ณ€์ˆ˜ public class PostAdapter extends..

๐Ÿค–Android/Java 2023. 12. 29. 09:29
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - ๋ฉ”๋‰ด ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•(Vector Asset)

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ ์‹œ ์•„์ด์ฝ˜์ด ํ•„์š”ํ•œ๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ์•„์ด์ฝ˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์•„์ฃผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ƒ‰์ƒ, ํฌ๊ธฐ ๋ณ€๊ฒฝ ๋“ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 1. [File]-[New]-[Vector Asset] 2. ํด๋ฆฝ์•„ํŠธ๋กœ ๋งŒ๋“ค๊ธฐ 2.1. Asset type์„ Clip art ์„ ํƒ ํ›„ Clip art ์˜†์— ๊ทธ๋ฆผ์„ ํด๋ฆญํ•œ๋‹ค. 2.2. Select Icon ์—์„œ ๋งˆ์Œ์— ๋“œ๋Š” ์•„์ด์ฝ˜ ์„ ํƒ ํ›„ OK 2.3. ํŒŒ์ผ๋ช…๊ณผ ์‚ฌ์ด์ฆˆ, ์ปฌ๋Ÿฌ ํˆฌ๋ช…๋„๋ฅผ ๋ณ€๊ฒฝ ํ›„ 2.4. ๊ฒฝ๋กœ ํ™•์ธ ํ›„ Finish ํด๋ฆญ 2.5. R.drawable์— ์•„์ด์ฝ˜ ํŒŒ์ผ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. 3. SVG ๋กœ ๋งŒ๋“ค๊ธฐ 3.1. Vector Asset์„ ์—ด์–ด Asset type์„ Local file (SVG, PSD)๋กœ ์„ ํƒํ•˜๊ณ  Path์—์„œ ํŒŒ์ผ์„ ์ฐพ..

๐Ÿค–Android/Java 2023. 12. 28. 10:25