๐ŸŒCoding/๐ŸŒŸAndroid Studio 10

[Android Studio] BuildConfig ์˜ค๋ฅ˜

local.properties test="" build.gradle(Modul) android { defaultConfig { ... buildConfigField "String", "TEST", properties['test'] } ... } ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๊ณ  Sync๋ฅผ ํ–ˆ์ง€๋งŒ BuildConfig.TEST๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. ์ €๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 1. File -> Invalidate Caches -> Invalidate and Restart 2. Build -> Make Project

[Android Studio] Button ๋ˆŒ๋Ÿฌ ํ™”๋ฉด ์ „ํ™˜ํ•˜๊ธฐ

Button button=findViewById(R.id.{Button id}); button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { Intent intent=new Intent(getApplicationContext(), {์ „ํ™˜ํ•  ํ™”๋ฉด Activity}.class); startActivity(intent); } }); + ๋žŒ๋‹ค์‹ ์‚ฌ์šฉ Button button=findViewById(R.id.{Button id}); button.setOnClickListener(v ->{ Intent intent=new Intent(getApplicationContext(), {์ „ํ™˜ํ•  ํ™”๋ฉด Activ..

[Android Studio] ImageView

๐Ÿ™„ ImageView.ScaleType ImageView์— Image๋ฅผ ๋„ฃ๋Š” ๊ฒฝ์šฐ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋ฉด ์‚ฌ์ง„์ด ์ž˜๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ณ , ImageView ํฌ๊ธฐ์— ๊ฝ‰ ์ฐจ๊ฒŒ ํ•˜๊ณ  ์‹ถ์€๋ฐ ์›๋ณธ ์‚ฌ์ง„ ํฌ๊ธฐ์— ๋งž๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์›ํ•˜๋Š” ๋Œ€๋กœ ImageView์— ๋„ฃ๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋“ค๋งŒ ์ฐพ์•„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. 1) center : view์— ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์šด๋ฐ ํ‘œ์‹œํ•ด์ค€๋‹ค. but scale x 2) fitCenter: Matrix.ScaleToFit#CENTER๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ image๋ฅผ scale ํ•ด์ค€๋‹ค. -> ํฌ๊ธฐ์— ๋งž๊ฒŒ ๊ฐ€์šด๋ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œ 3) fitXY: ๊ฐ€๋กœ, ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ImageView์— ๊ฐ€๋“ ์ฑ„์›Œ์ค€๋‹ค. ex) xml์— ์ž‘์„ฑ android:scaleType="fitXY"

[Android Studio] ํ‚ค๋ณด๋“œ ํ™”๋ฉด ๊ฐ€๋ฆฌ๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

๐Ÿ™„ ํ‚ค๋ณด๋“œ ํ™”๋ฉด ๊ฐ€๋ฆฌ๋Š” ๋ฌธ์ œ ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅ์„ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ™”๋ฉด์— ๋‚ด์šฉ๋“ค์ด ๊ฐ™์ด ์œ„๋กœ ์ด๋™ํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ -> AndroidManifest.xml ์ˆ˜์ • ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ ํ‚ค๋ณด๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋„ ํ™”๋ฉด์ด ๊ฐ™์ด ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š์Œ

[Android Studio] sdk ๋ฒ„์ „ ์„ค์ •

๐Ÿ™„ sdk version - Android ํ”Œ๋žซํผ ๋ฒ„์ „๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜ธํ™˜์„ฑ์„ API ๋ ˆ๋ฒจ ์ •์ˆ˜๋กœ ํ‘œ์‹œ - minSdkVersion, targetSdkVersion, maxSdkVersion - Gradle Scripts -> build.gradle (:app) 1) minSdkVersion - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ API ๋ ˆ๋ฒจ์„ ์ง€์ •ํ•˜๋Š” ์ •์ˆ˜ - Android ์‹œ์Šคํ…œ์ด ์‹œ์Šคํ…œ์˜ API ๋ ˆ๋ฒจ์ด ์ด ๊ฐ’๋ณด๋‹ค ๋‚ฎ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ 2) targetSdkVersion - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋Œ€์ƒ API ๋ ˆ๋ฒจ์„ ์ง€์ •ํ•˜๋Š” ์ •์ˆ˜ - ํ”Œ๋žซํผ์˜ API ๋ ˆ๋ฒจ์ด ์•ฑ์˜ targetSdkVersion์ด ์„ ์–ธํ•œ ๋ฒ„์ „๋ณด๋‹ค ๋†’์€ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์€ ์•ฑ์ด ์˜ˆ์ƒ๋Œ€๋กœ ๊ณ„์† ์ž‘๋™ํ•˜๋„๋ก ํ˜ธํ™˜์„ฑ ๋™์ž‘ ํ™œ์„ฑ..

[Android Studio] layout

๐Ÿ™„ Layout - ๋ทฐ ๊ทธ๋ฃน ์ค‘์—์„œ ๋‚ด๋ถ€์— ๋ทฐ๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉด์„œ ๊ทธ๊ฒƒ๋“ค์„ ๋ฐฐ์น˜ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ - ์•ฑ์—์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์œ„ํ•œ ๊ตฌ์กฐ๋ฅผ ์ •์˜ - ๋ˆˆ์—๋Š” ๋ณด์ด์ง€ ์•Š์ง€๋งŒ ๋ฒ„ํŠผ ๊ฐ™์€ ๊ฒƒ์„ ๋‹ด์•„๋‘˜ ์ˆ˜ ์žˆ๋Š” ๊ณณ - View์™€ ViewGroup ๊ฐ์ฒด์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ (View: ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ๋“ค ex) ๋ฒ„ํŠผ, ํ…์ŠคํŠธ/ViewGroup: ๋ทฐ๋“ค์„ ์—ฌ๋Ÿฌ๊ฐœ ํฌํ•จ, ์ผ๋ฐ˜์ ์œผ๋กœ '๋ ˆ์ด์•„์›ƒ'์ด๋ผ๊ณ  ํ•จ) ๐Ÿ™„ Layout ์ข…๋ฅ˜ 1) ConstraintLayout - ๋ทฐ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ํฌ๊ณ  ๋ณต์žกํ•œ ๋ ˆ์ด์•„์›ƒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ - RelativeLayou ๋ณด๋‹ค ์œ ์—ฐ - ๊ฐ€๋กœ ๋ฐ ์„ธ๋กœ ์กฐ๊ฑด์„ ํ•˜๋‚˜ ์ด์ƒ ์ถ”๊ฐ€ํ•ด์•ผ ํ•จ * ๋‹ค๋ฅธ ์š”์†Œ์— ๋งž์ถฐ ์ •๋ ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์กฐ๊ฑด์„ ๊ทธ ์š”์†Œ์— ์—ฐ๊ฒฐ ex) - chain: ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ๊ทธ๋ฃน์œผ๋กœ..

*์ฐธ๊ณ * Kotlin findViewById() or Extensions

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด Kotlin์„ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘ findViewById()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. 1) Kotlin_findViewById() ์‚ฌ์šฉ - ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ์™€ ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. var ca: Button =findViewById(R.id.button) #๋ฒ„ํŠผ ๊ฐ€์ ธ์˜ค๊ธฐ ca.setOnClickListener { #๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ ca.setText("์•ผํ˜ธ") } 2) Extensions - ์ด ๋ฐฉ๋ฒ•์€ ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ์ค‘๋‹จ๋  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘๋‹จ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ํŽธํ•  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์— ์ผ๋‹จ ์ฃผ์„ฌ - Gradle Scripts์•ˆ์— ์žˆ๋Š” build.gradle(:app) ํŒŒ์ผ์„ open - ์œ„์˜ ํŒŒ์ผ์— 'kotli..