728x90

onBackPressed() : 보통 뒤로가기 버튼을 누름으로써 앱을 종료하게 되는데, 이 뒤로가기 버튼을 눌렀을 경우 처리할 내용을 정리하는 메소드이다.

 

onDestroy() : 전체 수명의 끝에서 호출되며, 생성된 스레드를 종결시키거나, 데이터베이스 연결을 닫는 등 모든 리소스를 해제한다.

 

setCancelable() : 안드로이드 다이얼로그 알림창을 띄울 때 Backkey(뒤로가기) 버튼을 눌러서 뒤로 나가지 못하게 하려고 할때 이 메소드 안에 값으로 false를 설정한다. 디폴트 값은 true이며  뒤로가기 키가 작동이 되므로 다이얼로그 창이 떳을 때 확인버튼을 누르지 않더라도 없앨 수 있다.

 

Log.e() : 오류 기록
Log.w() : 경고 기록
Log.i() : 메시지 기록
Log.d() : 디버그 기록
Log.v() : 상세 메시지 기록
728x90
Posted by 정망스
,
728x90
java.lang.Object
   ↳ android.view.View
     ↳ android.widget.TextView
       ↳ android.widget.EditText
         ↳ android.widget.AutoCompleteTextView
           ↳ android.widget.MultiAutoCompleteTextView

 

- AutoCompleteTextView와 다른점은 tokenizer로 여러개를 입력할 수(선택할 수) 있습니다.

tokenizer는 자바에서도 볼수있는데요, 단어들을 구별할만한 특정한 기호들을 정해서 단어들을 구분해줄수 있는 기능을 합니다.

 

MultiAutoCompleteTextView는 이 tokenizer 기능을 사용하게 됩니다.

 

예) 쉼표(,) tokenizer라면 "Belgium, France"가 가능

- 반드시 목록에 있는 항목을 선택해야 하는것은 아님

 

1. 자동완성에 쓸 문자열 및 Tokenizer 연결시키기(setAdapter(), setTokenizer()) 

 

public class CountriesActivity extends Activity {
     
protected void onCreate(Bundle savedInstanceState) {
         
super.onCreate(savedInstanceState);
         setContentView
(R.layout.autocomplete_7);
 
         
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                 android
.R.layout.simple_dropdown_item_1line, COUNTRIES);
         
MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.edit);
         textView
.setAdapter(adapter);
         textView
.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); // ','(쉼표) Tokenizer 등록(안드로이드 기본 제공 Tokenizer)
     
}

     
private static final String[] COUNTRIES = new String[] {
         
"Belgium", "France", "Italy", "Germany", "Spain"
     
};
 
}

 

xml에서의 구성은 AutoCompleteTextView와 옵션은 동일합니다.

 

android:layout_height = "wrap_content"로 설정해야 드롭다운 목록이 보인다구 합니다.

728x90
Posted by 정망스
,
728x90

안드로이드에서 제공되는 위젯중 AutoCompleteTextView 라는 것이 있습니다.

 

사용자가 입력한 글자들에 기초해서 완성된 단어를 제시해주는 기능을 제공합니다.

 

개발자들이 미리 정해둔 단어들에 사용자가 입력한 단어들이 부합하면 그 단어들이 제시되면서 사용자들은 특정 단어를 선택함으로써

입력을 쉽게 마칠 수 있습니다.

 

 


activity_main.xml


 

 

xml 란에 보시면 android:completionThreshold="1"  이구문은 자동 완성 기능이 몇글자를 입력했을시 발생시킬지 정하는 부분으로써 "1"로 되있기 때문에 첫글자부터 입력하게 되면 기능이 시작됩니다. android:completionHint="목록에서 클릭하세요." 부분은 Hint라는 부분에서 느낄수 있듯이. 자동 완성 기능의 목록 아래에 표시되는 도움말과 같은 글을 입력할수 있는 구문입니다.

 

옵션은 나중에 밑에 부분에 더 설명 드리겠습니다.

 

 

 


MainActivity


 

 static final String[] COUNTRIES = new String[] 구문은 앞서 말씀드린듯이 사용자들이 입력하는 단어들과, 개발자들이 미리 입력해놓은 단어들을 비교해서 관련이 있을경우 자동 완성란의 목록에 나오기 때문에, 이와같이 배열을 만들어서 미리 데이터들을 입력해 놓습니다. (물론 더 좋은 방법들도 많겠죠..)

 

OnItemClickListener 구문은 제가 자동완성 기능 실행시 해당 단어를 클릭할 경우 재대로 입력을 받아오는지 확인하기 위해 임의로 익명클래스를 만들었고 토스트로 해당 텍스트를 출력시켜보기 위해 만들었습니다. 파라미티 같은 경우에는 AdpaterView<?> parent 는 클릭된 뷰의 부모인 어댑터 뷰, View view는 사용자가 클릭한 뷰, int position은 선택된 뷰의 위치, long id는 선택된 항목이 리스트의 몇번째 위치, 정도로 보시면 될 것 같습니다.

 

AutoCompleteTextView 구문은 이제 앞서 xml에 생성한 AutoCompleteTextView 를 가져오고, 어댑터와 연결시킵니다. 파라미터를 보시면 android.R.layout.simple_dropdown_item_1line, 은 안드로이드에서 기본적으로 제공하는 드롭다운 형식의 레이아웃을 적용시키구 잇구요. 앞서 만들었던 배열 COUNTRIES 데이터들을 함께 넘겨줍니다. setOnItemClickListener은 앞서 만들었던 토스트를 위한 클릭 리스너를 연결해주는 부분입니다.

 

1. android:completionHint

    setCompletionHint(CharSequence)  :  Defines the hint displayed in the drop down menu.

    특성은 드롭다운 목록 아래에 표시될 도움말


2. android:completionHintView

    Defines the hint view displayed in the drop down menu.


3. android:completionThreshold

    setThreshold(int)  :  Defines the number of characters that the user must type before completion suggestions are displayed in a drop down menu.

    자동 완성 드롭다운 목록이 언제 표시될 것인지 결정. 기본값은 2 (두 글자부터)


4. android:dropDownAnchor

    setDropDownAnchor(int)  :  View to anchor the auto-complete dropdown to.


5. android:dropDownHeight

    setDropDownHeight(int)  :  Specifies the basic width of the dropdown.

    자동 완성 드롭다운 목록 높이


6. android:dropDownHorizontalOffset

    Amount of pixels by which the drop down should be offset horizontally.  

 

 

7. android:dropDownSelector

 

    Selector in a drop down list.  

 

8. android:dropDownVerticalOffset

    Amount of pixels by which the drop down should be offset vertically.

 

  

9. android:dropDownWidth

    setDropDownWidth(int)  :  Specifies the basic width of the dropdown.  
    자동 완성 드롭다운 목록 너비

 

10. android:popupBackground

 

    setDropDownBackgroundResource(int)

 

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

안드로이드에서 애니메이션을 만들려면

 

1. XML로 어떻게 동작하는지 정의

2. 소스에 에니메이션 객체를 불러 startAnimation()을 통해 동작

 

1. XML 정의

프로젝트 내의 res/anim 폴더 밑에 원하는 애니메이션 xml을 정의 한다.

 

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:interpolator="@android:anim/decelerate_interpolator">
   <translate
       android:fromXDelta="100%p"
       android:toXDelta="0"
       android:duration="500"/>

    <alpha

       android:fromAlpha="1.0"

       android:toAlpha="0.0"

       android:duration="500"

       android:repeatCount="1000000"/>
</set>

이 코드는 translate와, alpha를 사용한 페이드 아웃 애니메이션이다

우선, translate는 뷰나 기타 구성요소들의 위치 이동을 지정하는 태그이다.

fromXDelta는 X축 어디서부터 이동할것인지, toXDelta는 x축 어디까지 이동할 것인지를 의미한다.

 

위 코드에서는 100%부터 0%까지 이동하는 것으로 오른쪽 끝지점에서 왼쪽 끝지점으로 이동하게 된다.

 

alpha에서는 fromAlpha="0.0"  fromAlpha="1.0"으로 바꾸면 페이드 인 애니메이션이 된다.

[페이드 아웃 : 화면이 점차 어두워지면서 장면이 바뀌는 것]

[페이드 인: 화면이 점차 밝아 지면서 장면이 바뀌는 것]

 

양 태그에 존재하는 duration은 지속 시간을 의미하며 단위는 1/1000 sec이다 1000을 입력하면 1초를 의미한다.

 

repeatCount는 애니메이션이 반복될 횟수를 지정한다.

만약 여러 애니메이션을 설정하고 싶으면 <set>태그를 사용한다

 

각 애니메이션별로 속성값이 있는 애니메이션의 속성을 사용해야 된다.

 

alpha - fromAlpha, toAlpha

scale - fromXScale, toXScale, fromYScale, toYScale, pivotX, pivotY fillAfter, fillBefore

rotate - fromDegrees, toDegrees, pivotX, pivotY, startOffset

translate - toXDelta, toYDelta

 

2. 코드에 적용

 

 

public class AnimationActivity extend Activity {

       Animation animation;

 

       @Override

       public void onCreate(Bundel saveInstanceState) {

             super.onCreate(saveInstanceState);

             setecontentView(R.layout.main);

 

             animation = AnimationUtils.loadAnimation(this, R.anim.animation);

 

             View.startAnimation(animation);

 

             ....

        }

 

       ....

}

 

xml에 정의된 애니메이션 설정들을 부르기 위해서 AnimationUtils 객체를 사용했다.

애니메이션을 보이기 위해서는

View.startAnimation(animain);을 통하여 동작할 수 있다.

728x90
Posted by 정망스
,


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