목록프로그래밍/Android (13)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6GYqN/btrEGJZxdml/A4rsMVYWGNSnr8jkvM3sw1/img.png)
어댑터 뷰 어댑터 뷰(AdapterView)는 배열이나 파일, 데이터베이스에 저장된 데이터를 화면에 표시할 때 유용한 뷰 어댑터 뷰의 종류 리스트 뷰(ListView), 갤러리(Gallery), 스피너(Spinner), 그리드 뷰(GridView) 리스트 뷰(ListView) 리스트 뷰(ListView)는 항목들을 수직으로 보여주는 어댑터 뷰로서 상하로 스크롤이 가능 리스트 뷰의 표준 레이아웃 예제 public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String[] values = { "Appl..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Y9y2J/btrFdHsZeol/G6CpRGmH244BIrzSomRQoK/img.png)
Splash Screen 이미지나 로고, 현재 버전의 소프트웨어를 포함한 그래픽 요소를 보여주는 화면으로 보통 프로그램이 실행되고 있을 때 나오는 화면이다. 앱이 처음 실행될 때 나타난다. 만드는 방법 1. res / drawable 에 splash할 이미지 파일을 넣는다 2. res / values 에 style.xml 파일 새로 생성한 ... 이런식으로 style을 추가한다. 3. MainActivity.java 있는 위치(java / 패키지명)에서 SplashActivity.java 새로 생성 SplashActivity.java public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qbCj1/btrDuwulZ5H/eHijmKDv6h1xyMaYl5vhL0/img.jpg)
안드로이드에서의 그래픽 안드로이드는 XML 파일로 그래픽이나 애니메이션을 정의한다. 그리는 작업은 안드로이드 시스템이 담당한다. onDraw() 메소드 안에 draw...()와 같은 메소드를 호출하여 직접 그린다. 전체적인 구조 public class MyView extends View { ... @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); // 여기에 그림그리는 코드 } ... } public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LkdH1/btrCS1uQMgP/3ihzxFFWX0xEAvAUcPluZK/img.png)
Progress Dialog public class MainActivity extends AppCompatActivity { Disposable backgroundTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view) { runRx(); } private void runRx() { ProgressDialog asyncDialog = new ProgressDialog(this); asyncDialog.setProgressStyle(ProgressD..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NXhpI/btrCkLR9pTx/GvBu5Q6K6kkhafjrH4KuA0/img.jpg)
Reactive Programming 데이터 흐름과 전달에 관한 프로그래밍 패러다임 기존 PULL 방식이 아닌 PUSH 메커니즘 우리는 주로 절차를 명시하여 순서대로 실행되는 Imperative Programming(명령형 프로그래밍)을 한다. 반면 Reactive Programming이란 데이터의 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관된 작업이 실행된다. 즉 프로그래머가 어떠한 기능을 직접 정해서 실행하는 것이 아닌, 시스템에 이벤트가 발생했을 때 알아서 처리되는 것이다. 기존의 프로그래밍 방식을 Pull 방식, Reactive 프로그래밍 방식을 Push 방식이라고도 한다. Pull 방식은 데이터를 사용하는 곳(Consumer)에서 데이터를 직접 가져와서 사용한다면, Push 방식은 데이터의..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bnSAPb/btrBynFHzq2/eqEE74x63pAcXP18XnK2Yk/img.png)
팝업 메뉴 뷰에 부착된 모달 메뉴(modal menu)를 팝업 메뉴라 한다. API 레벨 11부터 제공하기 시작했으며 용도는 아래와 같다. 오버플로우 스타일 메뉴 제공 서브 메뉴의 역할 드롭다운 메뉴 팝업메뉴 만들기 1. res 아래에 menu 디렉토리 만들기 2. 그 밑에 popup.xml 만들기 popup.xml activity_main.xml MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activit..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bQuhIl/btrAUk4qdm5/33nZJkQ5eBkXEh3k4srhGk/img.png)
inflate inflate = 팽창 안드로이드에서는 XML 파일을 읽어서 실제 메뉴로 만들어주는 것을 inflate(팽창)한다고 한다. 메뉴 리소스를 팽창(inflate)하면 실제 메뉴가 생성된다. inflate 소스 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.mymenu, menu); return true; } 메뉴 종류 안드로이드가 지원하는 메뉴의 종류에는 3가지가 있다. 1. 옵션 메뉴 : 액티비티의 주 메뉴. 화면 아래쪽에 숨겨져 있으며, MENU 버튼을 눌러야 나타난다. 2. 컨텍스트 메뉴 : 화면을 길게 누르고 있..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nCiiS/btrzKsnvz3o/oydpkvFsvXzcLKhG9ftJbK/img.png)
EditText 이벤트 처리 - 리스너 객체 사용 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText editText = findViewById(R.id.editTest); Button button = (Button) findViewById(R.id.btnTest); button.setOnClickListener(new View.OnClickListener() { @Override public voi..