Bitmap 객체는 메모리에 만들어지는 이미지라고 할 수 있다. 컴퓨터 내에 저장되는 대부분의 이미지 파일을 읽어 들이면 메모리에 비트맵 객체로 만들 수 있다. 그리고 비트맵 객체를 이용하면 화면에 이미지를 수정하거나 그릴 수 있다. 비트맵은 그래픽을 그릴 수 있는 메모리 공간을 제공한다. 흔히 Double Buffering 이라고 불리는 방법인데, 별도의 메모리 공간에 미리 그래픽을 그린 후 뷰가 다시 그려져야 할 필요가 있을 때, 미리 그려놓은 비트맵을 화면에 표시하는 방법이다. ◎CustomViewImage.java package com.example.customviewimage; import android.content.Context; import android.graphics.Bitmap; im..
Graphic 그리기가 가능한 요소들을 Drawable 객체로 만들어 그릴 수도 있다. Drawable 객체는 그릴 수 있는 모든 것을 의미하는데, 대표적으로 Shape, Bitmap, Picture, LayerDrawable 등이 있다. 그리기 객체의 형태로는 PNG, JPEG 이미지 등을 표현하는 Bitmap, 이미지가 자동으로 늘어나는 부분을 설정하여 사용하는 NinePatch, 도형 그리기가 가능한 Shape, 세로축의 순서에 따라 그리는 Layer 등이 있다. 그리기 메서드를 사용하면 다양한 그래픽을 그릴 수 있다는 것은 직전 포스팅에서 실습했다. 그런데 왜 굳이 Drawable 객체를 사용하여 그래픽을 그릴 필요가 있는 걸까? 그래픽을 그리는 하나의 단위를 그리기 객체로 만들어 두면 각각의 그..
직전 포스팅에서는 원을 하나 구성하여 클릭 이벤트를 구성했다면, 이번 포스팅에서는 좀 더 다양한 모양의 도형들을 그려보고 이를 위해 사용하는 메서드와 도형 효과를 주기 위해 사용하는 다양한 메서드들을 정리 해보려고 한다. 우선, 그래픽을 그릴 때 필요한 주요 클래스는 다음과 같다. 클래스 설명 Canvas 뷰의 표면에 직접 그릴 수 있도록 만들어 주는 객체로 그래픽 그리기를 위한 메서드가 정의되어 있다. Paint 그래픽 그리기를 위해 필요한 색상 등의 속성을 담고 있다. Bitmap 픽셀로 구성된 이미지로 메모리에 그래픽을 그리는 데 사용한다. Drawable 사각형, 이미지 등의 그래픽 요소가 객체로 정의되어 있다. 다음 예제는 사각형이나 원을 그리고 해당 Paint 객체에 스타일을 설정하는 예제이다..
화면에 추가할 수 있는 View 에는 다양한 그리기 방법을 적용할 수 있다. 표준 자바에서와 거의 동일한 방식으로 구성할 수 있지만 자바가 Graphics 객체에 그래픽을 그린다면, 안드로이드는 Canvas 객체에 그려야 한다는 것이 차이점이다. 별로 어려운 내용은 아니니, 예제와 함께 따라가 보자. 새로운 View를 생성하고 Graphic을 그리는 단계는 보통 5개 단계로 나눌 수 있다. 1. 새로운 클래스를 만들고 View를 상속받는다. 우선, custom 패키지를 생성하고 그 아래에 View 객체를 상속받는 CustomView 클래스를 생성한다. 생성자를 추가한 뒤, 생성자를 초기화할 init() 메서드도 함께 작성한다. ◎custom.CustomView.java package com.example..
직전 포스팅에서 다뤘던 예제를 조금만 수정하여 앨범에서 데이터를 가져오는 대신, 연락처 목록에서 연락처를 가져와 보자. 연락처을 열람하고 데이터를 가져오기 위해서는 READ_CONTACTS 권한이 필요하다. 직전 포스팅에서 대부분의 내용은 다뤘으므로, 바로 코드만 확인해보자. ◎MainActivity.java package com.example.ssssssdead; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; import android.graph..
Android 공부에 사용하는 참고서가 2019년 개정판이라 액티비티를 띄울 때마다 startActivityForResult 메서드를 호출하여 그 결과 값을 가져온다. deprecated 메서드를 호출할 때마다, 괜히 헛공부하는 느낌이 들어서 Android 에서 권장하는 액티비티의 결과 값을 참조하는 방법을 좀 정리해보려고 한다. 예제는 직전에 사용했던 앨범에서 이미지를 가져오는 예제 코드를 비교를 위해 사용하겠다. ◎(기존) MainActivity.java package com.example.samplealbum; import android.app.Activity; import android.content.ContentProvider; import android.content.ContentResolve..
실제 앱을 개발할 때, 직접 내용 제공자를 사용하는 일보다 이미 존재하는 내용 제공자를 사용해야 하는 경우가 더 많을 것이다. 그 중 앨범이나 연락처에 있는 데이터를 조회하는 경우가 내용 제공자를 사용하는 가자우 대표적인 경우라고 할 수 있다. 이번 포스팅은 앨범을 조회하여 간단하게 이미지 뷰에 띄우는 예제를 확인해보려고 한다. 우선, 앨범을 가져와야 하는 위험 권한을 설정해줘야 하므로 매니페스트 파일에서 권한 설정과 어플이 실행되었을 때 권한을 허용할 수 있도록 해줘야 한다. ◎AndroidManifest.xml 다음으로 Intent 객체를 하나 생성하여 해당 Intent 객체의 MIME 타입과 액션 정보를 지정한 뒤, startActivity()를 호출하여 해당 intent 객체가 액티비티를 띄우도록..
내용 제공자(Content provider)는 한 앱에서 관리하는 데이터를 다른 앱에서도 접근할 수 있도록 해주는 안드로이드 어플의 구성 요소이다. 내용 제공자를 사용하면 다른 앱이 열어둔 데이터 접근 통로를 이용할 수 있으며, 반대로 다른 앱에게 데이터 접근 통로를 열어줄 수 있다. 내용 제공자에서 공유할 수 있는 데이터는 다음과 같다. 데이터베이스 파일 SharedPreference 데이터베이스를 다룰 때는 CRUD 동작을 모두 사용할 수 있다. 기본적으로 내용 제공자에서 허용한 통로로 접근을 하려면, ContentResolver객체가 필요하다. ContentResolver 객체는 데이터 제공자와 통신하여 ContentProvider를 구현하는 객체의 인스턴스를 가져오게 되고, 해당 provider ..
직전 포스팅에 사용했던 예제를 그대로 이어서, 데이터를 조회하는 방법을 확인해보려고 한다. 표준 자바에 preparedStatement를 사용하는 것과 비슷한데, SELECT 문을 사용하려면 반드시 Cursor 객체를 사용해야 한다. SQLiteDatabase객체가 가지고 있는 rawQuery() 메서드를 사용하여 Cursor 객체를 참조할 수 있다. public Cursor rawQuery(String sql, String[] selectionArgs) rawQuery를 한번 실행시켰으면, Cursor 객체가 가지고 있는 moveTo~ 메서드를 사용하여 커서를 이동하여야 다음 select 문을 계속해서 실행 시킬 수 있다. 바로 한번 예제를 확인해보자. 예제는 직전 포스팅에서 사용했던 예제를 그대로 사..
데이터베이스를 만드는 것 이외에도 테이블 정의가 바뀌어서 스키마를 업그레이드할 필요가 있을 때는 Helper 클래스를 사용할 수 있다. public SQLiteOpenHelper(Context context, String name, SQLiteDatabase.CorsorFactory factory, int version) SQLiteOpenHelper Class는 데이터베이스를 만들거나 열기 위해 필요한 작업들을 도와주는 역할을 한다. 핵심은 integer type인 버전 정보를 다르게 지정하여 데이터베이스의 스키마나 데이터를 변경하는 것이다. SQLiteOpenHelper 객체는 데이터베이스를 만들거나 열기 위해 필요한 작업을 도와주는 역할을 하는거지 데이터베이스를 직접 생성하느거 하지는 않는다. SQ..
- redux
- 이탈리안 레스토랑
- Async
- 인천 구월동 이탈리안 맛집
- 인천 구월동 맛집
- 파니노구스토
- await
- AsyncStorage
- react
- 맛집
- javascript
- 정보보안기사 #실기 #정리
- react-native
- Promise
- redux-thunk
- Total
- Today
- Yesterday