아두이노 LCD

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <LiquidCrystal.h>
 
//초기화를 위한 기본적인 인터페이스 핀 리스트
LiquidCrystal lcd (3410111213);
 
void setup() {
  // put your setup code here, to run once:
  lcd.begin(16,2); //가로 16칸, 세로 2칸
  lcd.clear();
}
 
void loop() {
  // put your main code here, to run repeatedly:
  lcd.setCursor(0,0);
  lcd.print("Hello arduino");
  lcd.setCursor(0,1);
  lcd.print("welcome to hell");
}
cs





안드로이드 스튜디오 단축키 설정 - 이클립스



안드로이드 뷰페이저


뷰페이저에 현재 보이는 화면을 그리는 방법은 직접xml파일을 인플레이션해서 배치하던가, 프레그먼트 단위로 박아야한다.

1
2
3
4
5
6
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/viewpager">
             
    </android.support.v4.view.ViewPager>
cs


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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
 
public class MainActivity extends Activity {
 
    private Button btn1;
    private Button btn2;
    private Button btn3;
    private ViewPager viewPager;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btn1 = (Button) findViewById(R.id.btn1);
        btn2 = (Button) findViewById(R.id.btn2);
        btn3 = (Button) findViewById(R.id.btn3);
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        btn1.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                viewPager.setCurrentItem(0);
                
            }
        });
        btn2.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                viewPager.setCurrentItem(1);
                
            }
        });
        btn3.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                viewPager.setCurrentItem(2);
                
            }
        });
        viewPager.setAdapter(new PagerAdapter() {
            
            @Override
            public boolean isViewFromObject(View arg0, Object arg1) {
                // TODO Auto-generated method stub
                return arg0 == arg1;
            }
            
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return 3;
            }
 
            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                // TODO Auto-generated method stub
//                super.destroyItem(container, position, object);
                //container == viewpager
                //object == 현재 페이지에 박혀있는 view
                ((ViewPager) container).removeView((View)object);
            }
 
            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                // TODO Auto-generated method stub
//                return super.instantiateItem(container, position);
                //position에 해당하는 뷰를 인플레이션해서
                //뷰페이저인 container에 addview
                View view = null;
                switch (position){
                case 0:
                    view = getLayoutInflater().inflate(R.layout.page_first, container,false);
                    break;
                case 1:
                    view = getLayoutInflater().inflate(R.layout.page_second, container,false);
                    break;
                case 2:
                    view = getLayoutInflater().inflate(R.layout.page_third, container,false);
                    break;
                }
                ((ViewPager)container).addView(view);
                return view;
            }
            
        });
        
        
    }
}
 
cs


' IOT 기반 응용 SW과정 > Android, Arduino' 카테고리의 다른 글

Day117 아두이노 이더넷 통신  (0) 2016.09.08
Day115 아두이노  (0) 2016.09.06
Day110 아두이노  (0) 2016.08.30
Day109 아두이노  (0) 2016.08.29
Day107 안드로이드 브로드캐스트리시버  (0) 2016.08.25

안드로이드 개발환경 구축하기

- JDK가 설치

- Android SDK(안드로이드 개발 라이브러리 준비)

->SDK Manager프로그램을 통해 다운로드할 수 있음

- IDE(통합개발환경) 설치 (안드로이드 스튜디오, 이클립스)

- 테스트 실행환경 준비 (기본 가상머신, 지니모션, 블루스택, 진짜 핸드폰 등등...)


통합개발환경을 이클립스로 사용하는 경우에는...

SDK와 이클립스간 연동과 각종 안드로이드 문법 인식을 위해 플러그인(안드로이드ADT)을 설치해줘야 됨


안드로이드 스튜디오는 인텔리제이를 기반으로 구글에서 안드로이드 전용 개발툴로 배포중


Android Developers

https://developer.android.com/
이 페이지 번역하기
The official site for Android developers. Provides the Android SDK and documentation for app developers and designers.

패키지네임이 같은 어플 두개는 같은 폰에 설치안됨

그러닌까 유일한 패키지네임으로 작성하셔야 마켓에 런칭도 가능 ㅇ


액티비티는 안드로이드 어플리케이션의 구성요소(주요한)로써 하나의 화면단위이기도 하고 명령처리흐름이기도 한다.



AndroidManifest.xml

어플에 대한 전반적인 설정파일, 어플리케이션 구성요소 등록, 권한정보...



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">HelloWorld</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    
<!--     상수들은 res에 등록해놓고 사용하기를 권장 -->
string_ko.xml
string_en.xml
이런식으로 언어별 문자열상수들을 여러개 등록하고
 
Ko버전의 app_name에는 안녕친구야
En버전의 app_name에는 HelloBro라고 해두면 
실행되는 환경의 언어설정에 맞는 문자열이 사용됨ㅇㅇ
</resources>
 
cs


activity_main.xml

1
2
3
4
5
6
7
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
<!--     Layout태그는 UI의 컨테이너 태그(자바의 패널이나 프레임같은 친구) -->
<!-- 화면 구성요소 중 자바로 치면.. 레이블 HTML로 치면 인풋 타입 텍스트 리드온리 에 해당하는 요소 (안드로이드에서는 위젯) -->
</RelativeLayout>
cs


MainActivity.java

1
2
3
4
5
6
7
8
public class MainActivity extends Activity {
 
    @Override //엑티비티가 만들어질때 호출되는 함수
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Resource중 layout에 있는 activity_main을 이 엑티비티의 화면으로 사용
    }
cs



' IOT 기반 응용 SW과정 > Android, Arduino' 카테고리의 다른 글

Day89 안드로이드 엑티비티 전환  (0) 2016.07.25
Day88  (0) 2016.07.22
Day87  (0) 2016.07.21
Day86  (0) 2016.07.20
Day85 안드로이드 액티비티  (0) 2016.07.19

+ Recent posts