매터리얼(Material) 컴포넌트인 MaterialButton를 사용하여 모서리가 둥근 버튼을 만드는 방법입니다. 1. build.gradle에 com.android.support:design을 추가합니다. dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support:design:28.0.0' testImplementation 'junit:jun..
앱 설치시 홈 화면에 아이콘을 설치하는 방법을 다룹니다. Android 8.0 API 28에서도 동작하는 방법입니다. 1. AndroidManifest.xml 매니페스트 파일에 다음 권한을 추가합니다. 2. MainActivity.java 파일의 onCreate 메소드에 다음 코드를 추가합니다. final String PREF_FIRST_START = "AppFirstLaunch"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SharedPreferences settings = getSharedPrefe..
Android에서 PdfBox 라이브러리를 사용하여 이미지와 텍스트를 PDF로 저장하는 예제입니다. 최초작성 - 2019. 2. 23 다음 글에서 작성했던 앱의 내용을 PDF로 저장하도록 수정해보았습니다. Android ScrollView 예제 - ImageView와 TextView를 함께 스크롤하는 방법https://webnautes.tistory.com/1303 A4용지 한장 분량이 넘어가는 것은 고려하지 않았습니다. 다음처럼 A4용지 너비를 넘어가는 긴 한줄의 문장을 여러 줄로 나누어 출력되도록 작성되어 있습니다. 123456789012345 67890123456 7890123 45678 901234567 8901233333333 3456789012 3456789 01234 567890 다음처럼 예..
Android에서 SQLite를 사용하여 테이블 생성시 문제가 생겼던 점을 포스팅합니다. SQLiteOpenHelper를 상속받은 클래스를 사용하여 데이터베이스 파일을 관리하지 않으면 생길 수 있는 상황인 듯합니다. 다음과 같은 구조의 테이블을 사용하여 앱을 만들다가 레코드이름타입idintegerimage blobtexttext 기존 테이블을 삭제하고 날짜 레코드를 추가했습니다. 문제 없이 동작하는 듯했습니다. 레코드이름타입idintegerimage blobtexttextdatedate 앱을 새로 설치할때 문제가 없는지 테스트해보다가 버그(?)를 찾았네요. 분명 date 타입이 추가된 테이블을 새로 생성하도록 했는데 date가 없는 테이블이 데이터베이스에 있다고 에러가 났습니다. 확인해보니 데이블을 생성..
스피너에 이미지를 추가하는 예제입니다. 실행시키면 다음처럼 화면 중앙에 스피너가 보입니다. 디폴트로 사과가 선택된 상태입니다. 스피너를 터치하면 선택 가능한 목록에 이미지와 문자열이 같이 보입니다. 항목을 선택하면 선택된 항목이 바뀌고 해당 문자열을 화면에 보여줍니다. 다음 과정을 통해 예제를 테스트 해 볼 수 있습니다. 1. drawable 폴더에 스피너에 넣을 이미지를 추가합니다. 다음 링크에 있는 이미지를 사용했습니다. https://www.flaticon.com/packs/gastronomy-set 2. 스피너에 보여줄 spinner_row.xml 레이아웃 파일을 추가합니다. 3. 액티비티에 보여줄 activity_main.xml 레이아웃 파일에 스피너를 추가합니다. 4. 스피너를 위한 Custo..
SimpleDateFormat를 사용하여 현재 날짜를 출력하는 예제입니다. Date currentTime = Calendar.getInstance().getTime(); SimpleDateFormat weekdayFormat = new SimpleDateFormat("EE", Locale.getDefault()); SimpleDateFormat dayFormat = new SimpleDateFormat("dd", Locale.getDefault()); SimpleDateFormat monthFormat = new SimpleDateFormat("MM", Locale.getDefault()); SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy", Loca..
안드로이드 앱 설치후 보이는 런처 아이콘을 변경하는 방법을 다룹니다. 최초 작성 2019. 2.24 다음 링크에서 받은 구름 모양 png 이미지 파일을 사용했습니다.https://www.flaticon.com/free-icon/cloud_149209#term=cloud&page=1&position=1 1. 메뉴에서 File > New > Image Asset를 선택합니다. 2. 다음 항목들을 변경합니다. Name 항목에 런처 아이콘 이름을 적어줍니다. 본 글에서는 뒤에 cloud를 붙였습니다.Layer Name 항목에 레이어 이름을 적어줍니다. 본 글에서는 뒤에 cloud를 붙였습니다.Path 항목에 있는 폴더 아이콘을 클릭하여 앞에서 다운로드 받은 이미지를 지정해줍니다. 이미지 지정후 오른쪽에 구름 모..
application 태그의 android:label과 activity 태그의 android:label의 값에 다른 이름을 지정하고 테스트를 진행해보았습니다. 1. 앱을 설치하는 과정에서는 application 태그에서 지정한 이름이 보였습니다. 2. 앱의 타이틀바에서는 activity 태그에서 지정한 이름이 보였습니다. 를 지정하여 가장 먼저 실행되는 액티비티가 해당됩니다. 3. 런쳐 아이콘에서도 activity 태그에서 지정한 이름이 보입니다.
ScrollView 내부에 ImageView와 TextView를 같이 넣어서 화면 스크롤시 이미지와 텍스트 뷰가 스크롤되도록 구현한 예제입니다. 최초 작성 2019. 2. 21 실행시키면 다음 처럼 동작합니다. 예제를 실행시키면 위에는 이미지가 보이고 아래에는 텍스트가 보입니다. 화면을 위로 스크롤하면 이미지와 텍스트뷰가 같이 이동하면서 스크롤됩니다. 예제 코드를 다음처럼 테스트해 볼 수 있습니다. 1. 앱에서 보여줄 이미지 파일을 드래그하여 res \ drawable 폴더에 넣습니다. 2. activity_main.xml 파일을 다음처럼 작성합니다. ScrollView에 ImageView와 TextView를 같이 넣을 수 없기 때문에 LinearLayout를 사용하여 집어넣습니다. 3. MainActi..
화면을 터치하면 툴바를 보여주는 Toolbar 예제입니다. 다음처럼 동작합니다. 화면을 터치할 때 마다 툴바가 보여졌다 안보여졌다합니다. 아이콘을 선택하면 어떤 메뉴를 선택했는지 보여줍니다. 오른쪽 아이콘을 누르면 추가 메뉴에서 항목을 선택할 수 있습니다. 다음처럼 코드가 작성되었습니다. 1. 타이틀바를 안보이게 하기 위해 styles.xml 파일을 수정합니다. @color/colorPrimary @color/colorPrimaryDark @color/colorAccent false true 2. res / menu 폴더에 menu_main.xml 파일을 추가하여 다음 내용을 복사합니다.아이콘은 편의상 프로젝트에 포함되어 있는 것을 사용했습니다. 원한시는 것으로 변경하세요. 3. layout 폴더에 to..