전체 글 (272) 썸네일형 리스트형 새로운 뷰 만들기 뷰가 스스로의 크기를 정할 때 자동으로 호출되는 메소드는 onMeasure이고, 스스로를 레이아웃에 맞게 그릴 때는 onDraw 메소드가 자동으로 호출된다 public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) public void onDraw(Canvas canvas) widthMeasureSPec과 heightMeasureSpec은 이 뷰를 담고 있는 레이아웃에서 이 뷰에게 허용하는 여유 공간의 폭과 높이에 대한 정보이다 부모 컨테이너에서 여유 공간에 대한 정보를 전달하는데 이 값을 참조하여 뷰가 보일 적절한 크기를 반환하면 이 크기 값으로 뷰가 그려지게 된다 void setMeasuredDimension(int measuredWidth.. 나인 패치 https://developer.android.com/studio/write/draw9patch?hl=ko https://github.com/mike-jung/DoItAndroidRev8/tree/master/part2/chapter07/SampleNinePatch/app/src/main/res/drawable 이미지 파일 자료 나인 패치(Nine Patch)는 이미지가 늘어나거나 줄어들 때 생기는 이미지 왜곡을 해결하는 방법을 정의하는 것 파일 확장자 앞에 '.9'를 붙여야 한다 activity_main.xml 외부 라이브러리를 이용한 위험 권한 자동 부여 https://github.com/yanzhenjie/AndPermission build.gradle(Module) dependencies { ... implementation 'com.yanzhenjie:permission:2.0.3' } 디펜던시 변경 후 안드로이드 스튜디오 상단의 sync now 클릭 AndroidManifest.xml MainActivity package com.example.a40_permission2; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast; // 샘플 참고 // https://github.com/yanzhenjie/AndPermiss.. 위험 권한 부여 https://developer.android.com/guide/topics/permissions/overview?hl=ko 위험 권한을 부여하는 것은 언제든지 가능하다 액티비티가 메모리에 만들어지는 시점에 부여되도록 하려면 onCreate 메소드 안에서 하면 되고, 버튼이 눌렸을때 권한이 부여되게 할 수도 있다 AndroidManifest.xml MainActivity package com.example.a39_permission; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.conten.. 브로드캐스트 https://developer.android.com/guide/components/broadcasts?hl=ko 안드로이드에서 브로드캐스팅이란 메세지를 여러 객체에 전달하는 것을 의미한다 여러 앱 구성 요소에 메세지를 전달할 때 브로드캐스팅을 사용한다 문자를 받았을 때 이 문자를 SMS 수신 앱에 알려줘야 한다면 브로드캐스팅으로 전달하면 된다 이런 메세지 전달 방식은 단말 전체에 적용될 수 잇다 이런 메세지 전달 방식을 글로벌 이벤트라고 부른다 '전화가 왔습니다.', '문자 메세지가 도착했습니다.'와 같은 사용자 알림이 글로벌 이벤트이다 AndroidManifest.xml build.gradle(Module)에 implementation 'com.yanzhenjie:permission:2.0.3' 권한.. 서비스 https://developer.android.com/guide/components/services?hl=ko 서비스를 실행하려면 메인액티비티에서 startService 메소드를 호출하면 된다 서비스를 시작시키기 위해 startService 메소드를 호출할 때는 인텐트 객체를 파라미터로 전달한다 인텐트 객체는 어떤 서비스를 실행할 것인지에 대한 정보를 담고 있으며 시스템은 서비스를 시작시킨 후 인텐트 객체를 서비스에 전달한다 startService 메소드가 호출되어 이미 메모리에 올라가있는 상태라면 시스템이 onCreate가 아니라 onStartCommand 메소드를 실행한다 onStartCommand 메소드는 서비스로 전달된 인텐트 객체를 처리하는 메소드이다 MyService.java 파일이 생성되고,.. 바로가기 메뉴, Navigation Drawer 새 프로젝트를 만들 때 Nagivation Drawer Activity를 선택할 수 있다 /app/manifests/AndroidManifest.xml activity 태그 안에 theme 속성이 설정되어 있다. 기본으로 제공되는 테마가 아니라 직접 만든 테마를 설정하기 위한 것이다 /app/res/values/themes 폴더 안에 themes.xml 파일이다 기본 제공 테마가 아니라 상단의 액션바가 없는 스타일로 설정된다 activity_main.xml에서 AppBarLayout 태그로 화면 상단에 액션바를 보여줄 수 있다 activity_main에서 직접 하지않고 app_bar_main.xml 파일로 분리되어있다 NavigationView가 바로가기 메뉴를 위한 뷰이다 축소 아이콘을 눌렀을 때만 보.. ViewPager2로 여러 프래그먼트 간 슬라이드 https://developer.android.com/training/animation/screen-slide?hl=ko 뷰페이저 https://developer.android.com/training/animation/screen-slide-2?hl=ko 뷰페이저2 https://developer.android.com/training/animation/vp2-migration?hl=ko 뷰페이저에서 뷰페이저2로 이전 뷰페이저는 손가락으로 좌우 스크롤하여 넘겨볼 수 있는 기능을 제공한다 뷰페이저 객체는 객체는 화면 슬라이드에 자동으로 애니메이션을 적용할 수 있다 이전의 fragment1.xml, fragment2.xml, fragment3.xml과 Fragment1, Fragment2, Fragment3 .. 이전 1 ··· 11 12 13 14 15 16 17 ··· 34 다음