슬기로운 개발자생활/Native APP

[APP 개발] 안드로이드 스튜디오 리소스 관리, 상단 제거, 화면크기 호환

개발자 소신 2020. 1. 9. 23:45
반응형

 

 

 

ㅇ리소스

 

개발을 할 때는 리소스를 참 많이 활용하게되는데요ㅎㅎ

 

안드로이드 스튜디오는 리소스를 용도별로 폴더를 나눠서 쓸수 있습니다.

 

개발하는 입장에서 참 좋은 기능인데요 !

 

안드로이드 스튜디오에서 사용하는 리소스 종류입니다.

drawable : 이미지

layout : 화면 레이아웃

values : 문자, 컬러, 숫자 등

menu : 액티비티의 메뉴 XML

anim : 애니메이션 XML

raw : mp3, ogg, 등 소스파일들

mipmap : 앱 아이콘

xml : 기타 등등

 


anim (애니메이션 XML)

 

안드로이드 스튜디오에는 각종 Animation효과를 줄 수 있는 태그가 따로 정의되어있습니다.

<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate/> // 위치 이동

<rotate/> // 회전

<alpha/> // 투명도 조절

<scale/> // 크기 조절

</set>

 

 

 

각 태그 별 속성들입니다. 

duration은 공통속성으로 몇 ms동안 진행할지 정해주시면 됩니다.

duration="2000" 은 2초동안 진행 !

또한, startOffset = "500" 을 통해 0.5초 뒤에 애니메이션을 시작하게 지정할 수도 있습니다.

repeatCount는 반복 횟수, infinite는 무한반복, 2는 2번 반복

repeatMode는 restart는 지정된 효과 그대로, reverse는 반대로 입니다.

 

메뉴 열고 닫는 건 이런 애니메이션을 통해 지정하면 생각보다 간단하겠네요.

 

Animation을 뷰에 연결하는 방법은 자바 코드에서 

 

 

이렇게 Animation 객체를 선언해주고, view에 .startAnimation으로 해당 애니메이션을 지정해주면 됩니다.

 

생각보다 정말 간단하네요. 애니메이션 관리도 편하게 할 수 있고

 

 

 

또한 Animation Listener를 통해 각 상황별로 실행할 함수들을 지정해줄수도 있습니다.

 

 

values (문자열, 컬러, 숫자)

 

솔직히 코드를 깔끔하게 쓰고 싶다면 자주 사용할 애들입니다.

strings.xml // 문자열 저장 <string>

colors.xml // 색깔 저장 <color>

styles.xml // 스타일 저장 <style>

arrays.xml // 배열 저장 <string-array>, <integer-array>

dimens.xml // 크기 <dimen>

 

사용할때 자바에서는 R.arrays.name

xml에서는 @dimen.name 으로 사용하시면 됩니다.

 

선언만 하지 말고 각 태그에 name을 지정해줘야겠죠?

 


화면 상단의 툴바 (Toolbar) 제거

 

안드로이드 스튜디오에서 처음에 만들때 거슬리는 부분이 화면 상단의 툴바 Toolbar인데요

이거를 없애는 방법은

 

 

 

application에 적용되어있는 저 스타일 XML에

<item name="windowNoTitle">true</item>

<item name="windowActionBar">false</item>

을 추가해주시면 됩니다.

 

화면을 전체화면으로 적용해서 맨 윗줄의 상태바까지 사라지게 하려면

<item name="android:windowFullscreen">true</item>

을 추가해주시면 됩니다.

 

 

 

한 개의 activity에만 적용하려면 툴바를 없애는 xml을 activity에 속성으로 추가해주시면 됩니다.

 


ㅇ화면 크기 호환성

여러개의 화면에 내가 원하는대로 화면을 보여주기가 쉽지 않죠.

 

유니티에서는 간단하게 화면 크기 비율만 있으면 모든 기기에 적절한

사이즈로 줄여주는 스크립트가 있어서 그거만 가져다 쓰면 됐는데

 

안드로이드 스튜디오는 그런게 없는것 같아요.. 찾아봐야겠지만ㅎㅎ

 

 

 

 

res폴더의 mipmap을 보시면 같은 이름으로 6개의 파일이 있는걸 확인하실 수 있는데,

 

 

이걸 해당 폴더로 가서 확인하면 한 폴더에 6개의 파일이 있는게 아니라

6개의 폴더에 각각 파일이 하나씩 들어가있는 걸 확인할 수 있습니다.

 

이게 안드로이드 스튜디오의 특징인데

mipmap + "-hdpi" 이 뒤에 붙는게 각 기기의 환경에 맞춰 적용되게 해줍니다.

 

가끔 앱을 보면 지역을 영어로 해놨을 때는 영어로 뜨고,

한국으로 해놓았으면 한국어로 뜨는걸 보신적이 있을텐데요.

(솔직히 이건 해외에 나가거나 특별한 방법이 아니면 자주 접하진 못합니다 ㅎㅎ)

 

그건 리소스 폴더를 한국어 버전과 영어 버전으로 나눠놓았기 때문입니다.

 

일단 한국어 지역에 맞춰 생성한다고 하면

res폴더의 생성할 위치에 New → Values resource file을 선택한 뒤

 

 

 

뜨는 화면에서 Locale을 선택하고 >>를 선택

 

 

한국을 선택하고 South Korea를 선택해주면 이 환경에 맞는 앱은

이 리소스 폴더의 파일을 사용하게 됩니다.

 

어때유 정말 쉽쥬?

 

화면 크기는 Density 를 추가해주고 density에 맞춰 선택해주시면 되는데

 

 

이 부분은 솔직히 이해하기 어렵기도 하고 맘에 안드는 부분이라

화면크기 부분은 따로 간단하게 정리해야겠습니다.

 

 

반응형