1. AndroidManifest.xml 파일에 다음의 내용을 추가한다.

 - android:configChanges="orientation|screenSize|keyboardHidden"

수정전
<activity android:name=".MainActivity"
            >

수정후
<activity android:name=".MainActivity"
            android:configChanges="orientation|screenSize|keyboardHidden"
            >

- orientation : 방향이 바꼈을 때 알려달라
- keyboardHidden : 입력상자가 있어도 keypad가 자동으로 뜨지 않게 해달라

* 참고로 휴대폰 센서에 상관없이 가로 방향으로 만들려면 다음의 속성을 넣으면 된다.

<activity android:name=".MainActivity"
            android:screenOrientation="landscape"
            >

2. MainActivity.java에서 onConfigurationChanged 함수를 override 방식으로 추가한다.

(Mainfest 1번처럼 설정해주면, 방향이 전환되었을 때 이 함수가 호출됨)

@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        //가로 방향인지 확인
        if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
        {
        	Toast.makeText(this, "가로방향 상태", Toast.LENGTH_SHORT).show();
        }
        else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
        {
            Toast.makeText(this, "세로방향 상태", Toast.LENGTH_SHORT).show();
        }
}

 

 

 

'앱개발' 카테고리의 다른 글

Fragment  (0) 2021.05.05
[안드로이드] Inflation을 이용한 sub화면 전환  (0) 2021.05.01
[안드로이드] 버튼 상태 drawable  (0) 2021.04.26
[안드로이드] 텍스트  (0) 2021.04.24
[안드로이드] Buttons  (0) 2021.04.24

*용도

 1) 버튼 : Press & Release 시각 효과를 위해 쓰임

 

* 사용 방법

 1) 버튼의 이미지, 버튼 눌러졌을 때 이미지를 app/res/drawable에 복사한다

 

 

 

 2) 좌측 메뉴 트리 : app > res > drawable 에서 마우스 우클릭 > New > Drawable resource file

3) 사용할 xml 파일명을 입력한 다음 OK. (여기서는 button_drawable.xml)

4) xml의 내용을 다음과 같이 수정한다

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button_press" />
    <item android:drawable="@drawable/button" />
</selector>

 

5) activity에 버튼을 추가한 다음 background 속성에 @drawable/button_drawable 입력

* 시뮬레이터로 실행해 보면 다음과 같이 확인 가능하다

 

* Drawable

 - Bitmap Drawable : 이미지를 메모리로 올렸을 때 안드로이드에서 정의한 타입이 비트맵. 이미지를 이용해서 그려줄 수 있는 것이 Drawable

 - 상태 Drawable : 상태에 따라서 다른 비트맵, 그래픽 또는 이미지를 보여줄 수 있는 것

 - trainsition Drawable : 두개의 drawable을 서로 바꿔줄 수 있는 것

  - shape drawable : 사각형, 삼각형을 이용해서 그려줄 수 있는 것

1. Plain Text

1) input type : 이 값에 따라 입력되는 키패드 타입이 달라짐

2. Password : Plain Text와 같은 컨트롤인데, input type이 textPassword

 

 

1. 버튼

  - 버튼은 TextView를 상속 받아서, 텍스트뷰의 모든 기능을 쓸 수 있다 + 클릭 가능

  - onClick 이벤트를 이용해서 자바 함수에 추가 가능

 

2. 체크버튼

  - Checked : 체크 여부

  - text : 표현할 텍스트

 

3. 라디오 그룹 & 라디오 버튼

  1) 라디오 그룹안에 라디오 버튼을 계측 구조로 넣어주면 된다

   - orientation : 포함된 라디오버튼의 정렬 방향

 2) 라디오 버튼

  - layout_margine/layout_margineLeft : 왼쪽 객체(여기서는 라디오버튼)과의 거리

1. text 속성

 1) 속성에다 직접 값을 쓰는 방법

 2) res/values/strings.xml에 값을 입력하고 그 값을 쓰는 방법

<resources>
    <string name="app_name">MyWidget</string>
    <string name="hello">안녕하셔유?</string>
</resources>

 

2-1. textColor : 글씨 색상 속성

2-2. textSize : 글씨 크기 속성

2-3. textStyle : normal, Bold, Italic 속성

3. maxLines 속성 : 글씨가 수에 상관없이 표현할 라인의 수

 

4. lineSpacingExtra : 줄간격

 

 

 

'앱개발' 카테고리의 다른 글

[안드로이드] 텍스트  (0) 2021.04.24
[안드로이드] Buttons  (0) 2021.04.24
Flutter 실습(3) - 다트 문법  (0) 2021.04.24
Flutter 실습(2) - 걍 한번 만들어보기  (0) 2021.04.24
Flutter 실습(1) - 설치  (0) 2021.04.24

1. 변수 선언 및 할당

//주석
/*
이놈도 주석
*/ 
/// 이것은 문서에 포함되는 주석

String name = '홍길동';
//num 타입은 숫자형 아무 타입이나 사용가능한듯
num num_type1 = 10;
num num_type2 = 20.0;

int int_type1 = 1;
//int int_type2 = 1.2; //에러 발생 라인

var var_type1 = '아무타입이나';
var var_type2 = 2.3;

final int final_int_type = 10;


func1(var v)
{
  print('var value print $v');
}

void main() {
  //final_int_type = 20;//final은 변경불가
  
  if(num_type1 is int){
    print('num_type1 is int type');
  }else{
    print('num_type1 is not int type'); 
  }
  
  if(num_type2 is! int){
    print('num_type2 is int type');
  }else{
    print('num_type2 is not int type'); 
  }
  
  double double_type1 = int_type1 as double;

  print('double_type1의 값은 $double_type1입니다');
  func1(double_type1);
  
  print('hello');
}

2. 함수와 메서드

 1) 함수 : 클래스에 포함되어 있지 않은 함수(최상위 함수)

 2) 메소드 : 클래스 내부의 함수

 3) 익명 함수 : ([인수명]){[동작 또는 반환값]}

  ex) (number){ return number%2 == 0; }

 4) 람다식 : ([인수명]) => [동작 또는 반환값]

  ex) (number) => number %2==0;

 5) 선택 매개변수 : 매개변수 중 {}로 감싼 매개변수는 써도 되고 안 써도 됨, 그런데 기본값을 써줘야 함 -_-;

void func(String name, {int age=0, String alias=""})
{
  print('name : $name');
}

void main()
{
  //func(name : 'aaa', age:11);
  //func('name', age:11);
  func('name');
}

 

이 뒤의 클래스는 생략

 

정리의 귀차니즘...

 

'앱개발' 카테고리의 다른 글

[안드로이드] 텍스트  (0) 2021.04.24
[안드로이드] Buttons  (0) 2021.04.24
[안드로이드] textView 주로 쓰는 기능 정리  (0) 2021.04.24
Flutter 실습(2) - 걍 한번 만들어보기  (0) 2021.04.24
Flutter 실습(1) - 설치  (0) 2021.04.24

1. 프로젝트 생성

2. Flutter Application 선택 > Next

 

3. Flutter SDK와 프로젝트 저장 경로 넣기

 

4. 도메인 넣기

  - Use androidx.* artifacts : 플러터 개발시 외부 라이브러리 사용해야 하는데, 최신 라이브러리는 대부분 Androidx 기반이라 체크해 주는 것이 좋다고 함

  - include Kotlin support for Android code : 네이티브와 연동하는 코드 - 체크시 코틀린, 해지시 자바를 쓰는 듯

  - include Swift support for IOS code : 네이티브와 연동하는 코드 - 체크시 스위프트, 해지시 Object-C

 

5. finish를 누르면 다음과 같이 화면이 나타나는데, 환경이 제대로 구성되었는지 보려면 좌측의 pubspec.yaml 선택 후 우측의 Flutter doctor 클릭

하단에 다음과 같은 메세지가 나타남

E:\Study\Flutter\sdk\bin\flutter.bat doctor --verbose
[√] Flutter (Channel stable, 2.0.5, on Microsoft Windows [Version 10.0.19042.928], locale ko-KR)
    • Flutter version 2.0.5 at E:\Study\Flutter\sdk
    • Framework revision adc687823a (8 days ago), 2021-04-16 09:40:20 -0700
    • Engine revision b09f014e96
    • Dart version 2.12.3

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\hdong\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] Connected device (2 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 90.0.4430.85
    • Edge (web)   • edge   • web-javascript • Microsoft Edge 90.0.818.46

! Doctor found issues in 1 category.
Process finished with exit code 0

 

Toolchain 쪽에서 [!] 표시가 있고, 이를 해결하려면 flutter doctor --android-licenses 를 입력하라고 되어 있음

명령을 실행하면 6번의 질문이 나타나고, y[엔터]를 6번정도 입력하면 된다.

 

6. AVD Manager 실행해서 가장 Device를 하나 만든다(과정 생략)

그리고 나서 에뮬레이터 실행

7. 안드로이드 스튜디오에서 실행하면 다음과 같이 실행된다

8. 폰에도 개발자 모드 설정 후 실행

 

 

 

'앱개발' 카테고리의 다른 글

[안드로이드] 텍스트  (0) 2021.04.24
[안드로이드] Buttons  (0) 2021.04.24
[안드로이드] textView 주로 쓰는 기능 정리  (0) 2021.04.24
Flutter 실습(3) - 다트 문법  (0) 2021.04.24
Flutter 실습(1) - 설치  (0) 2021.04.24

안드로이드를 한번 보고 잊어 먹고, 얼마 지나지 않아 또 보고 잊어 먹고 써먹을 데가 없으니 자꾸 까먹고 있는데

 

다시 한번 해볼까 하고 안드로이드 스튜디오를 설치하고 뒤적거리다

 

Flutter라는 놈이 있어서 주말에 책 보고 한번 따라해볼려고 함

 

앱은 예전에 10만들기라는 단순 산수 프로그램을 만들었다가 Playstore에 올릴 수준이 안되어 지금은 행방이 묘연하다

 

그래서 설치부터 다시 한번...ㅎㅎ

 

1. Flutter SDK 설치

 * http://flutter.dev/docs/get-started/install 에서 Windows 버전을 다운 받아 설치

 동작조건이

 1) Windows 7 SP1 이상

 2) 1.64GB 하드디스크 용량

 3) Windows Powershell 5.0 이상, git 2.x

2. 다운 받은 sdk를 압축 해지한다(나는 E:\Study\Flutter\sdk 에 설치)

 

3. 환경변수 path에 등록

4. 설치가 잘 되었는지 확인한다

 

5. 안드로이드 스튜디오를 실행해서 하단의 Configure > Plugins를 선택

6. 검색 창에 Flutter를 입력하면 나타나는데 Flutter의 install 선택

 

7. 다음과 같은 창이 나타나면 Yes. 참고로 Flutter는 Dart라는 언어를 쓴다고 한다(아직은 잘 모름)

 

 

8. 설치가 완료되고 안드로이드 스튜디오를 다시 시작하면 다음과 같이 Flutter 프로젝트를 생성할수 있는 메뉴가 추가된다

* 안드로이드 스튜디오가 설치되어 있으면 플러그인 추가는 어렵지 않네

+ Recent posts