android.view.View의 xml 속성 목록

웹 & 안드로이드/Android|2013. 10. 2. 14:20


Attribute name

Related Method

 설명

 android:alpha

 setAlpha(float)

 0(투명)과 1(불투명) 사이의 값으로 불투명도를 지정한다.

 android:background

 setBackgroundResource(int)

 리소스의 그림을 배경으로 지정.

 android:clickable

 setClickable(boolean)

 이 뷰를 클릭하면 이벤트가 반응 할 것인가 아닌가를 

 android:contentDescription

 setContentDescription

(CharSequence)

 텍스트 내용을 간략하게 설명하는 텍스트를 지정한다.

 android:drawingCacheQuality

 setDrawingCacheQuality(int)

 

 android:duplicateParentState

 

직접적인 부모로부터 그리기 스타일을 가져올것인지를 지정.

 android:fadeScrollbars

 setScrollbarFadingEnabled

(boolean)

 사용하지 않을때 화면은 어둡게 할것인지를 지정.

 android:fadingEdgeLength

 getVerticalFadingEdgeLength()

 페이딩 가장자리의 길이를 지정.

 android:filterTouchesWhenObscured

 setFilterTouchesWhenObscured

(boolean)

 화면이 다른창으로 이동할때 터치 필터링 여부를 지정. 

 android:fitsSystemWindows

 setFitsSystemWindows(boolean)

 ??화면에 레이아웃을 표시할때 폰의 상태표시줄을 같이 표시할 것인지의 여부를 지정.

 android:focusable

 setFocusable(boolean)

 뷰가 포커스를 취할 수 있는지의 여부를 지정.

 android:focusableInTouchMode

 setFocusableInTouchMode

(boolean)

 터치모드에서 포커스를 취할 수 있는지의 여부를 지정.

 android:hapticFeedbackEnabled

 setHapticFeedbackEnabled

(boolean)

 보기와 같이 긴 프레스등의 이벤트를 사용할 햅틱 피드백을 가져야 할지의 여부를 지정.

 android:id

 setId(int)

 이 뷰를 참조 하기 위한 식별자(id)를 부여.

 android:importantForAccessibility

 setImportantForAccessibility(int)

 이 뷰의 이벤트가 중요한 시스템을 접근할 때 이것을 실행시킬지의 여부를 사용자에게 물어보는 창을 띄운다.

 android:isScrollContainer

 setScrollContainer(boolean)

 이 뷰를 이동하거나 축소, 확대가 가능하고, 스크롤이 있는 컨테이너인지를 지정.

 android:keepScreenOn

 setKeepScreenOn(boolean)

 뷰를 볼 동안 화면은 유지할지를 지정.

 android:layerType

 setLayerType(int,Paint)

 이 레이어의 유형을 지정.

 android:layoutDirection

 setLayoutDirection(int)

 레이아웃의 방향을 설정.

 android:longClickable

 setLongClickable(boolean)

 long클릭시 이벤트의 반응 여부를 지정.

 android:minHeight

 setMinimumHeight(int)

 뷰의 최소 높이를 지정.

 android:minWidth

 setMinimumWidth(int)

 뷰의 최소 너비를 지정.

 android:nextFocusDown

 setNextFocusDownId(int)

 다음 포커스가 되는 뷰를 지정.

자세히는 몰라!!!

 android:nextFocusForward

 setNextFocusForwardId(int)

 android:nextFocusLeft

 setNextFocusLeftId(int)

 android:nextFocusRight

 setNextFocusRightId(int)

 android:nextFocusUp

 setNextFocusUpId(int)

 android:onClick

 

 뷰를 클릭하면 컨텍스트의 메소드를 호출한다.

 android:padding

 setPaddingRelative(int,int,int,int)

 사방의 가장자리 여백을 픽셀단위로 설정.

 android:paddingBottom

 setPaddingRelative(int,int,int,int)

 아래쪽 여백을 설정

 android:paddingEnd

 setPaddingRelative(int,int,int,int)

 각 위치의 여백 설정

 android:paddingLeft

 setPadding(int,int,int,int)

 android:paddingRight

 setPadding(int,int,int,int)

 android:paddingStart

 setPaddingRelative(int,int,int,int)

 android:paddingTop

 setPaddingRelative(int,int,int,int)

 android:requiresFadingEdge

 setVerticalFadingEdgeEnabled

(boolean)

 

 android:rotation

 setRotation(float)

 각도만큼 회전한다.

 android:rotationX

 setRotationX(float)

 각도만큼 x축 회전

 android:rotationY

 setRotationY(float)

 각도만큼 y축 회전

 android:saveEnabled

 setSaveEnabled(boolean)

 뷰에 지정된 id에 뷰 상태가 저장된다.

 android:scaleX

 setScaleX(float)

 x축의 스케일을 지정

 android:scaleY

 setScaleY(float)

 y축 방향의 스케일을 지정

 android:scrollX

 

 가로스크롤의 초기위치를 픽셀단위로 지정.

 android:scrollY

 

 세로스크롤의 초기위치를 픽셀단위로 지정.

 android:scrollbarAlwaysDrawHorizontalTrack

 

 가로 스크롤을 항상 표시할것인지를 지정.

 android:scrollbarAlwaysDrawVerticalTrack

 

 세로스크롤바를 항상 표시할 것인지를 지정.

 android:scrollbarDefaultDelayBeforeFade

 setScrollBarDefaultDelayBeforeFade

(int)

 대기할때 화면이 어두워지기전의 시간을 지정.

 android:scrollbarFadeDuration

 setScrollBarFadeDuration(int)

 스크롤바가 사라지는데 걸리는 시간을 지정.

 android:scrollbarSize

 setScrollBarSize(int)

 스크롤바의 높이와 너비를 지정.

 android:scrollbarStyle

 setScrollBarStyle(int)

 스크롤바의 위치와 스타일을 지정.

 android:scrollbarThumbHorizontal

 

 가로스크롤바의 당김을 지정.(손가락)

 android:scrollbarThumbVertical

 

 세로스크롤바의 당김을 지정.(손가락)

 android:scrollbarTrackHorizontal

 

 가로스크롤바의 당김을 지정.(트랙)

 android:scrollbarTrackVertical

 

 로스크롤바의 당김을 지정.(트랙)

 android:scrollbars

 

 스크롤 여부에 따라 스크롤바를 표시할 것인지를 지정.

 android:soundEffectsEnabled

 setSoundEffectsEnabled

(boolean)

 이벤트에 대한 사운드를 사용할 것인지를 지정.

 android:tag

 

 나중에 검색 할 수있도록 뷰의 문자열을 포함하여 이 뷰에 대한 태그를 제공한다.

 android:textAlignment

 setTextAlignment(int)

 텍스트의 정렬을 지정.

 android:textDirection

 setTextDirection(int)

 텍스트의 방향을 지정. 위에서 아래로 쓸것인가, 좌 혹은 우로 쓸것인가의 방향.

 android:transformPivotX

 setPivotX(float)

 뷰가 회전하고 확장할 수있는 기준 점의 x위치.

 android:transformPivotY

 setPivotY(float)

 뷰가 회전하고 확장할 수있는 기준 점의 y위치.

 android:translationX

 setTranslationX(float)

 뷰의 x축을 변환.

 android:translationY

 setTranslationY(float)

 뷰의 y축을 변환.

 android:visibility

 setVisibility(int)

 뷰를 보이는것을 지정.

보이게 할 수 있고 안보이게 할 수 잇다.


댓글()

[10.1]이벤트 처리

웹 & 안드로이드/Android|2013. 10. 1. 11:05

-버튼 아이디에 @+id/이름 이라고 되어있다.

R.java에 등록하고, 자바 파일에서 호출하여 어떠한 기능을 가능하도록 하는것이다.

리스너를 추가시키기 위함이다.


-레이아웃에 버튼이 있다. 레이아웃만 호출하면 버튼에 기능을 넣을 수가 없다.

그 버튼까지 R.java에 등록하여 자바에서 호출하여 기능을 넣을 수가 있다.


-Activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
<!-- 버튼 하나를 생성-->
<!-- R.java에 등록하여 자바파일에서 이 버튼을 호출하여 리스너를 부여함. -->
    <Button
        android:id="@+id/event_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/event_btn"
         />
 
</RelativeLayout>



MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.wakeup.event_test;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = (Button)this.findViewById(R.id.event_btn);//R.java에 등록된 버튼을 호출.
    
        btn.setOnClickListener(new View.OnClickListener() {//익명 클래스를 생성. 1회성 클래스이기 때문
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this"안녕하세요", 0).show();
            }
        });
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }    
}
 


결과



버튼을 누르면 "안녕하세요" 문자열이 뜬다.

댓글()

안드로이드 컴포넌트

웹 & 안드로이드/Android|2013. 10. 1. 10:14

1. Activity

안드로이드 프로그래밍을 하면 만나는 가장 기초적인 컴포넌트로서, 사용자 인터페이스의 기본 단위.

앱의 한 화면을 자체를 Activity 라 하고, 일반적으로 앱은 여러개의 Activity로 이뤄지며, 

또 하나의 Activity는 여러개의 View(ex: textview, imageview ...) 로 이뤄져 있다.



2. Service

Activity가 화면에 보이고 사용자에게 입출력을 제공한다면, Service의 경우 그와 반대로 화면에 출력되는 UI가 없으며, 백그라운드에서 길고 반복적인 작업을 하는데 사용된다. 예를 들자면 일반적인 음악재생 앱의 경우, 노래 재생은 계속하되 다른 앱을 실행한다던가 다른 작업을 할수 있다. 즉, 여기서는 노래가 Service로 실행중인것이다. 앞서 말했듯 Service는 UI 가 없기 때문에, 사용자와 통신하고자 한다면, 중간에 Activity를 삽입하고 이를 통해 중간 매개체 삼아 통신한다.  [ Service <-> Activity <-> 사용자 ]

재미있는 특징으로는 Service는 하나의 앱에 종속적이지 않기 때문에 하나의 Service로 다양한 앱들과 통신이 가능하다는 점.



3. Broadcast Receiver

안드로이드는 시스템의 기능/이벤트들이 발생하면, 이를 Broadcast 한다. 네트워크에서의 Broadcast 개념과 비슷하며, 안드로이드에서는 각 앱들로 이 신호를 전달하게 된다. 따라서 각 앱들에 이 신호를 받을수 있는 Broadcast Receiver 만 구현해 놓으면, 언제든지 각종  시스템 이벤트에 대비하고 이를 활용할수 있다. 여기서  시스템 이벤트들이란, 전화가 왔다!, 사진을 찍었다!, 배터리가 없다!, 문자가 왔다!, 등등..

시스템 이벤트만 언급 했지만 사실 하나의 일반 앱에서도 시스템에 정의된 신호가 아닌 임의 Broadcast 를 날릴수 있고, 이를 활용 가능하다.



4. Content Provider

앱 간에 데이터를 송수신하는데 사용된다. 일반적으로 SD카드나 외장메모리는 아무 앱이나 접근가능하지만, 앱 패키지 내의 폴더는 다른앱들이 접근 불가능하다. 이때, 해당 폴더의 데이터에 접근하고 이를 사용하고자 할때 사용하는 것이 Content Provider 이다. 대표적으로 카톡이 있겠다. 이놈은 설치만 하면 자동으로 주소록과 동기화하여 친구들을 마구 등록해 놓는다. 좋은 기능이기도 하지만 어찌보면 짜증나기도 하지만, 여하튼! 주소록 앱에서 Content Provider 를 제공하고, 이를 활용하여 카톡은 Content Resolver 라는 클래스를 통해 주소록 DB 에서 접근하여 정보를 가져오는 것이다.






출처 - http://manhdh.blog.me/120151839457

댓글()

ADT 안드로이드 프로젝트 구조

웹 & 안드로이드/Android|2013. 10. 1. 09:18

http://cafe.naver.com/jjdev/1004


안드로이드 프로젝트 구조.





 

 1. 프로젝트 클래스. 생성된 컴포넌트가 위치한다.


 2. 안드로이드는 포르젝트 내 모든 리소스, 객체는 R.java에 등록할 수 있으며 id를 부여, id 를 부여하여 관리한다.

  


 3. 컴파일 파일이 저장되는 폴더.

- 안드로이드 프로젝트는 컴파일 되면 .apk라는 파일로 컴파일 되고 이것은 안드로이드 전용 JVM(달빅)에 실행된다.


 4. 리소스 폴더.

- 문자열, 이미지, 배열등 해당. 뷰에 해당하는 레이아웃도 여기에 위치한다.

- assets/ 폴더와 /res 폴더가 있다.

- /res에는 리소스가 위치하며 모든 파일은 xml형태로 존재하며,

  모든 리소스의 메모리 주소값은 R.java에 등록이 되며 R.java를 통해 리소스를 참조 할수 있다.

assets/는 용량이 비교적 큰 리소스가 위치.


-drawable : 사진파일

-

 

 5. AndroidManifest.xml

- 프로젝트의 환경설정 파일(이름, 버전, 구성등에 대한 정보를 가진다.)



댓글()

[9.30]R.java 와 AndroidManifest.xml

웹 & 안드로이드/Android|2013. 9. 30. 16:01

1. R.java


- 모든 리소스는 R.java에 등록이 된다.

- 따라서 리소스를 호출할 때에는 R.java파일을 통하면 된다.

- 가장 중요한 파일.

- 전부 final과 static이다. 한번 실행되면 변수값 수정과 메소드 오버라이딩이 불가능하고, new연산자로 생성하지 않고 호출이 가능하다.

- 프로젝트를 생성하면 생기는 기본파일. 
R.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.wakeup5.hello;
 
public final class R {
    public static final class attr {
    }
    public static final class dimen {
  
        public static final int activity_horizontal_margin=0x7f040000;
        public static final int activity_vertical_margin=0x7f040001;
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class id {
        public static final int action_settings=0x7f080001;
        public static final int button1=0x7f080000;
    }
    public static final class layout {
        public static final int activity_main=0x7f030000;
    }
    public static final class menu {
        public static final int main=0x7f070000;
    }
    public static final class string {
        public static final int action_settings=0x7f050001;
        public static final int app_name=0x7f050000;
        public static final int hello_world=0x7f050002;
    }
    public static final class style {
    
        public static final int AppBaseTheme=0x7f060000;
    
        public static final int AppTheme=0x7f060001;
    }
}


-리소스 호출 방법.

MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.wakeup5.hello;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//R을 통해 activity_main라는 뷰를 호출했다. 
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}




2. AndroidManifest.xml


- 웹 어플리케이션에 비교하면 web.xml에 해당하는 파일

- 여기에는 안드로이드 고유 이름과 버전이 들어있어, 중요한 파일이다.

- 컴포넌트 생성과 액티비티라는 컴포넌트와 뷰에 해당하는. xml파일을 연결해주는 역할



- AndroidManifest.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wakeup5.hello"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" ><!--모든 컴포넌트는 여기에 등록을 해야한다. -->
        <activity
            android:name="com.wakeup5.hello.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <!--해당 액티비티를 메인 액티비티라고 설정함. -->
                <category android:name="android.intent.category.LAUNCHER" />
                <!--해당 액티비티를 안드로이드 런처에 등록. -->
            </intent-filter>
        </activity>
    </application>
 
</manifest>
 



-진동, gps사용등 퍼미션(권한)설정을 할 수 있다.


댓글()

[9.30]안드로이드 project 시작

웹 & 안드로이드/Android|2013. 9. 30. 15:20

안드로이드 어플리케이션 프로젝트 생성




1. package name 설정.


-package name : 모든 어플리케이션은 고유의 이름을 가진다. 그 어떤 어플리케이션과도 중복되는 이름이 되어서는 안된다.




2. activity 생성.


activity는 화면에 보이는 것. 하나의 activity는 어플리케이션의 한 페이지의 화면이다.


- 안드로이드의 컴포넌트는 4개. 그중 화면에 보이는것은 activity 즉, ui를 가질 수 잇는것.







- activity종류

blank : 보통의 어플리케이션의 화면을 보여주는 액티비티. 풀스크린이 아닌 화면.

fullscreen : 게임화면같은 화면 전체를 사용하는 액티비티.

master/detail flow : 시작할때 어떤 액티비티를 보여줄지 선택할수 있는 액티비티




3.메인 액티비티 이름 설정.


- 안드로이드 어플리케이션은 뷰/기능을 분리시켰다. 액티비티는 반드시 하나의 뷰파일을 가져야 한다.

- 액티비티 이름은 MainActivity, 이 것이 가지는 뷰는 activity_main이라는 xml파일이다.





4.완료


-finish를 클릭하면 하나의 프로젝트가 생성된다.



댓글()

[9.30]안드로이드 개발을 위한 설치와 셋팅

웹 & 안드로이드/Android|2013. 9. 30. 09:46

0. 선행 설치 - 먼저 jdk 설치가 되어 있어야 함.


1. ADT와 Android SDK 설치


1-1. ADT(Andriod developer tool) 다운로드와 실행.

Andriod developer tool : 안드로이드 개발을 위한 툴

- 설치 되는 것


http://developer.android.com/index.html 페이지 접속.








컴퓨터에 따라 32-bit 혹은 64-bit를 선택후 다운 받으면 된다.





다운로드를 받고 압축을 풀면 안드로이드 개발을 위한 플러그인이 깔린 이클립스가 있다.


이클립스를 실행하면 다운로드 끝.


1-2.Andloid SDK 설치하기.




-설치 할 것을 체크후 인스톨을 누른다.(이경우는 학습을 위해 전부 다운 받음.)





- 전부 동의후 인스톨을 누르면 다운로드와 설치가 시작된다.

- 전부 다운 받을 시 용량이 4Gb정도 되니 하드디스크 여유 용량을 확보하면 좋다.




2.셋팅하기


2-1 Android Virtual Device 셋팅


-클릭.



-새로운 셋팅을 위해 new를 누른다.




- 밑줄 친 입력폼은 필수.


- 상자는 옵션

* keyboard : 에큘을 사용하는데 실제 키보드를 사용할 수 있도록 하는것.



- 새로 생성이 되었으면 start 버튼을 누른다.



- 상자는 윈도우 화면에 뜨는 에뮬레이터 크기를 설정. screen size를 7정도로 하면 좋다.

- wipe user data : 실행 할때 에뮬레이터 상태를 초기화함.



- launch 버튼을 누르면 에뮬레이터가 실행 된다.


'웹 & 안드로이드 > Android' 카테고리의 다른 글

[10.1]이벤트 처리  (2) 2013.10.01
안드로이드 컴포넌트  (0) 2013.10.01
ADT 안드로이드 프로젝트 구조  (0) 2013.10.01
[9.30]R.java 와 AndroidManifest.xml  (0) 2013.09.30
[9.30]안드로이드 project 시작  (0) 2013.09.30

댓글()