728x90

처음 프로그래밍을 할때부터 이클립스로 보통 export 하면

생기는 라이브러리가 .jar 파일을 많이 접했는데 이게 예전부터 보아왔고 사용했고, 그래서 지금도 엄청 익숙한데

 

저번 메시지 푸쉬 기능을 한번 해보면서

 

좀 내 기준에선 새로운걸 발견한 듯 하여 까먹지 않으려 일단 적어 본다.

 

결론부터 적자면 aar 이라는 나에게 있어서는 새롭게 보는 라이브러리 형태 파일인대.

 

기존에 jar 파일 형식은 유니티에서 약간 사용하기가 번거로운 부분이 많은가 보다 ..

 

보통 안드로이드에 필요한 리소스들, xml등은 res 파일에 추가 되는데 유니티에서 안드로이드와

같이 작업하긴 위해선 이 jar 파일과 + res 파일을 같이 옴겨서 사용해야 햇나보다.

 

리소스를 사용하지 않으면 문제가 없을테지만 말이다.

 

버전업 되어 나온지 유니티 5 이상부턴 aar 이라는 안드로이드 프로젝트 라이브러리 또한

사용할수 있게 지원한다는 것 같다.

 

aar 파일은 이미지, xml 등을 모두 같이 한번에 모듈화 할수 있는 듯 하다.

 

나도 최근에 google play services를 사용해보려고 라이브러리를 찾던중 아무리 찾아도 안보이길래

 

검색을 통해서 알아보니 sdk 매니저를 통해 받은 경로를 뒤져보니 각각에 필요한 기능들 별로 aar 파일이 제공되어 있었다.

 

아무래도 안드로이드를 기반으로 만드는거면 aar을 더 권장하는 목적으로 그러는거 같기도 하고.. (이건 그냥 내 생각..)

 

아무튼 새로운걸 알아 냈다.~

728x90
Posted by 정망스
,
728x90

alpha : 서서히 나타나는 애니메이션, 스플래시 윈도우나 뷰들을 자연스럽게 나타내고자 할때 사용( 알파값을 반대로 하면 서서히 사라짐)


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

android:interpolator="@android:anim/accelerate_interpolator"

android:fromAlpha="0.0"

android:toAlpha="1.0"

android:duration=@android:integer/config_longAnimTime" />


translate : 이동


<translate

android:fromXDelta="100%p" android:toXDelta="0"

android:duration="@android:integer/config_shortAnimTime" />


[왼쪽으로 이동하며 서서히 나타남]


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

<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300" />

<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />

</set>


[왼쪽으로 이동하며 서서히 사라짐]


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

<translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300" />

<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />

</set>


[위로 이동하며 나타나기]


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

<translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="300" />

<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />

</set>


[7번 흔들기]


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

    android:fromXDelta="0" android:toXDelta="10" android:duration="1000" 

    android:interpolator="@anim/cycle_test" />

 

sclae + alpha를 사용한 축소되며 사라지기


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

android:interpolator="@android:anim/decelerate_interpolator"

android:zAdjustment="top">

<scale android:fromXScale="1.0" android:toXScale=".5"

android:fromYScale="1.0" android:toYScale=".5"

android:pivotX="50%p" android:pivotY="50%p"

android:duration="@android:integer/config_mediumAnimTime" />

<alpha android:fromAlpha="1.0" android:toAlpha="0"

android:duration="@android:integer/confg_mediumAnimTime"/>

</set>


서서히 나타나며 원래 크기보다 커졌다가 원래크기로 돌아가는 애니메이션


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

android:interpolator="@android:anim/decelerate_interpolator"

<alpha

android:fromAlpha="0.0"

android:toAlpha="1.0"

android:duration="100" />

<scale

android:fromXScale="0.5" android:toXScale="1.5"

android:fromYScale="0.5" android:toYScale="1.5"

android:pivotX="50%" android:pivotY="50%"

android:duration="200" />

<scale

android:fromXScale="1.5" android:toXScale="1.0"

android:fromYScale="1.5" android:toYScale="1.0"

android:pivotX="50%" android:pivotY="50%"

android:startOffset="200"

android:duration="100" />

</set>


레이아웃 애니메이션 : 레이아웃에 포함된 각 뷰들이 보여지는 애니메이션 설정


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

android:delay="0.5"

android:animationOrder="random"

android:animation="@anim/설정할 애니메이션" />


728x90
Posted by 정망스
,
728x90

노트북에 안드로이드 환경을 구축하려 시도를 했다. 결론은 이클립스 안드로이드 환경 구축하는데 하루가 걸렸다..(삽질..)

 

최근 안드로이드 배포가 많이 바뀐것 같았다.

아예 최신 SDK까지 포함한채로 이클립스 압축파일을 배포하고있었다.

 

하지만 난 그것을 원한게 아니라

주로 웹 개발을 목적으로 이클립스 ee버전을 사용하고있기 때문에 지금 사용하는 이클립스 자체에 안드로이드를 설치하고싶었다.

 

예전방식대로 안드로이드 구글 주소와함께 ADT를 설치하고 했는데

왜냐...

왜 이 아이콘들이 보이지 않느냐...

많은 고심을 하다가 아 ... 삽질했구나.... 퍼스펙티브를 java로 바꾸니 이 아이콘이 보였다...(....................)

 

이제 다른 하위 sdk 버전들을 다운받자 라는생각에 SDK Manager를 실행했는데 뭐냐

sdk manager 경로를 계속찾을수 없단다

난 분명 경로설정 되있는데 말이다....

 

고심끝에 구글링을하던중 발견!

 

나만 이런것이 아니였다. 윈도우8에서만 이런건지는 모르겠는데 jdk의 경로명에 포함되어있는 띄어쓰기를 인식하지못해 실행이 안되고 있었다.

 

 

이것은 나의 컴퓨터 윈도우7환경의 경로인데 띄어쓰기 있는데도 잘 인식한다..

 

그런데 이상하게 윈도우8 노트북에서만 안된다.

 

그래서 기존 jdk를 지우고 다시 설치하되, 경로명에 띄어쓰기 없는 경로에 설치했다

나같은경우엔 c안에 위치한 temp폴더에 java폴더를 생성해서 설치했다

 

그랬더니 SDK Manager이 아주 잘실행 된다~

728x90
Posted by 정망스
,
728x90

안드로이드에서 자주 사용되는 속성들!

이름이 아주 직관적이어서 이름만으로도 의미를 파악하기 쉽게 되있다.

속성이름은 XML 문서에도 그대로 적용된다.

 

(id)

뷰를 칭하는 이름을 정의한다. 코드나 XML 문서에서 이 뷰를 참조할 때 id를 사용 하므로 의미를 잘 설명할 수 있는 이름을 붙여야 한다.

 

@[+] id/ID

 

@ : id를 리소스 (R.java)에 정의하거나, 참조한다는 뜻이며 무조건 붙여야 한다.

+ : ID를 새로 정의한다는 뜻이다, 처음 새로 정의할 때만 붙이고 참조할 때는 붙이지 않는다.

id : 예약어 이므로 그대로 쓰면되고 / 뒤에 원하는 이름을 작성한다.

ID : 고유한 명칭이므로 명칭 규칙에 맞추고, 같은 범위에 속한 뷰끼리 중복되어서는 안 된다.

 

android:id="@+id/name"

 

XML 문서에 ID를 지정해 놓으면 이 이름이 R.java에 정수 상수로 정의 된다. 코드에서 이 뷰를 참조할 때는 findViewById라는 메서드를 호출하여 인수로 참조할 뷰의 id를 전달한다.

예를 들어 name 위젯의 텍스트를 변경하고 싶다면 findViewById(R.id.name) 식으로 호출 한후 setText 메서드를 호출한다.

 

id는 뷰의 이름을 정의하는 중요한 속성이지만 모든 뷰에 id를 의무적으로 지정할 필요는 없다. 코드에서 참조할 필요가 없는 위젯은 보통 id를 생략한다. 예를 들어 배경에 이미지를 출력하는 이미지 뷰는 XML 문서에 배치되어 있으면 될 뿐 이후에 참조할 일은 없으므로 굳이 id를 줄 필요가 없다.

 

(layout_width, layout_height)

뷰의 폭과 높이를 지정한다. 뷰는 부모 뷰(또는 액티비티)안에 배치되는데 이 속성이 지정하는 만큼의 크기로 배치된다. 수평, 수직 각 방향에 대해 크기를 지정할 수 잇으며 다음 세 가지중 하나의 값을 가진다.

 

fill_parent : 부모의 주어진 크기를 다 채운다.

wrap_content : 내용물의 크기만큼만 채운다.

정수 크기 : 지정한 크기에 맞춘다.

 

 

 

(background)

뷰의 배경을 어떻게 채울 것인가를 지정한다. 

 

(padding)

뷰와 내용물간의 간격을 지정한다.

 

Padding : 4방향에 동일한 여백이 적용

PaddingLeft : 왼쪽변에 대해 여백이 적용

PaddingRight : 오른쪽변에 대해 여백이 적용

PaddingTop : 윗쪽변에 대해 여백이 적용

PaddingBottom : 아랫변에 대해 여백이 적용

 

(visibility)

뷰의 표시 유무를 지정한다. 별다른 지정이 없으면 당연히 보이는 상태로 배치되지만 이 속성을 지정하면 디자인 타임에 숨겨 놓았다가 런타임에 필요할 때만 보이도록 할 수도 있다.

 

visible : 보이는 상태

invisible : 숨겨진 상태이되 자리는 차지

gone : 숨겨지며 자리도 차지하지 않는다.

 

(clickable, longClickable)

마우스 클릭 이벤트를 받을 것인지, 롱클릭 이벤트를 받을 것인지를 지정

클릭은 손가락으로 뷰를 누르는 것이며 롱클릭은 누른 채로 잠시 기다리는 것이다. 진위형이므로 true 또는 false 둘 중 하나의 값을 지정한다.

 

(focusable)

키보드 포커스를 받을 수 있는지를 지정한다. 뷰 클래스 자체는 디폴트로 포커스를 받지 않도록 되어 있으므로 키 입력을 받으려면 이 속성을 true로 변경해야 한다.

(예외적으로, 에디트나 버튼처럼 사용자의 입력을 받아야 하는 파생클래스는 이 속성의 디폴트가 true로 지정되어 있다)

 

 

 

 

 

728x90

'Android' 카테고리의 다른 글

안드로이드 ImageView  (0) 2012.07.27
안드로이드 TextView  (0) 2012.07.27
안드로이드 뷰(view)의 계층  (0) 2012.07.27
안드로이드 에뮬레이터 사용법  (0) 2012.07.27
안드로이드 XML 레이아웃의 장점  (0) 2012.07.27
Posted by 정망스
,
728x90

 setContentView의 인수로 전달된 R.layout.main은 구체적으로 main.xml 레이아웃 파일을 의미

 마법사가 프로젝트를 생성할 때 기본 레이아웃 파일을 만들어주는데 패키지 탐색기에서 res/layout 폴더 안의

 main.xml 파일을 열어보면 아래와 같은 GUI 디자인 뷰가 열린다.

 

 

이 화면에서 마우스로 레이아웃을 편집하고 확인 할 수 있다.

아래쪽의 main.xml을 클릭하면 텍스트 형태로 xml 파일을 보고 편집 할 수 있다.

 

 

xml 파일이다, xml 헤더가 있고 utf-8로 인코딩 되어 있다.

루트 엘리먼트에는 android 네임 스페이스(android:)가 정의 되어 있는데 네임 스페이스란 어휘의 중복을 방지하기 위한 xml 표준 장치이다. 모든 속성명 앞에 이 네임스페이스가 붙는다.

 

이 파일의 구조는 현재 리니어 레이아웃에 텍스트 뷰를 하나 배치하고 택스트 뷰에 @string/hello 를 출력하라는 뜻이다.

리니어 레이아웃은 가장 흔하게 사용되는 레이아웃이며 차일드를 수평, 수직으로 나란히 배열하는 컨테이너이다.

여기서 @은 리소스에서 ID를 참조하라는 뜻이다. @srting/hello는 values 폴더의 strings.xml 파일에 정의되어 있다.

 

 

GUI 편집 화면이 열리는데 직관적이고 사용하기 쉽다.

아래쪽의 strings.xml 탭을 누르면 텍스트 형태로 전환된다.

 

 

 

두 개의 문자열이 정의되어 있다.

hello 문자열은 뷰 안에 출력되고 app_name 문자열은 타이틀 바에 표시된다.

이 문자열을 수정한 후 재실행(ctrl+s, ctrl+F11)하면 바뀐 문자열이 화면에 나타난다.

코드나 xml 파일에서 참조하는 리소스 ID는 R.java 파일에 정의된다.

이 파일에는 상수를 정의하는 클래스만 잔뜩 선언되어 있으며 코드는 전혀 없다.

 

이 파일은 개발툴이 자동으로 관리하므로 개발자가 임의로 편집해서는 안 되며 그럴 필요도 없다.

R클래스 안에 종류별로 drawable, layout, string 등의 정적 클래스를 정의하고 그 안에 main, hello등의 상수가

정의되어 있다. 그래서 소스에서는 복잡한 16진수를 쓸 필요없이 R.layout.main이라고만 쓰면 된다.

 

R.java 파일에 정의된 16진수의 실제값인 0x7f030000 등은 리소스 간의 구분을 위해 붙이는 일련 번호이며 개발툴이 알아서 관리한다. 내부적인 규칙에 의해 값이 중복되지 않도록 관리할 것이다. 값 자체는 큰 의미가 없기 때문에 몰라도 상관없으며 코드에서 Icon, main, hello 같은 명칭만 잘 사용하면 된다.

 

 

 

728x90
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침