본문 바로가기

반응형

안드로이드 스튜디오

[안드로이드] 디바이스, 레이아웃 사이즈 구하기 어플 개발을 하다 보면 각 기기마다 사이즈가 다르기 때문에 사이즈가 필요한 경우가 있습니다. 오늘은 어플을 실행한 기기의 가로, 세로 사이즈를 구해서 텍스트뷰에 띄워주는 예제를 만들어보겠습니다. 1. activity_main.xml 2.ll_background.xml(drawable폴더에 생성) 레이아웃을 구분하기 위해서 레이아웃에 테두리를 추가해주는 xml 소스입니다. 3.MainActivity.java import androidx.appcompat.app.AppCompatActivity; import android.graphics.Point; import android.os.Bundle; import android.view.Display; import android.widget.LinearLayout.. 더보기
[안드로이드] Json 데이터를 받아서 한번에 객체에 담기 - JsonObjectRequest, JSONObject, Gson 이전 포스팅에서 StringRequest를 이용해서 원하는 회차의 로또 당첨 번호를 조회하는 예제를 만들어봤는데요. 이번에는 JsonObjectRequest와 Gson을 이용해서 더 쉽고 짧은 코드만으로 내가 만든 커스텀 클래스에 json데이터를 받아오는 예제를 만들어보겠습니다. 코드의 상당 부분이 이전 코드와 비슷하기 때문에 수정, 추가된 부분만 올리도록 하겠습니다. 이전 예제와 같이 보시면 더욱 도움이 되실 것 같습니다. 이전 예제를 보실 분들은 텍스트를 클릭해주세요. LottoData.java(커스텀 클래스) public class LottoData { private int drwNo; private String totSellamnt; //총 판매액 private String returnValue;.. 더보기
[안드로이드] Json 사용시 JsonSyntaxException 발생 했을때(MalformedJsonException) com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 12 path $ 이전에는 잘 작동하던 코드였는데 에러가 발생해서 이상하다는 생각이 들었습니다. 로또 API를 이용해서 데이터를 받아오는 예제를 만드는 도중 알 수 없는 에러가 나와서 구글 검색을 해봤습니다. JsonReader를 이용해서 setLenient(true)로 설정하는 방법 그 외에도 여러 가지가 많았는데요. 혹시나 하는 마음에 해당 url을 웹브라우저를 이용해서 확인해보니 해당 사이트가 시스템 점검중이었습니다. 여러 가지 api를 이용해서 json데이터를 받아오는 코드를 이용하신.. 더보기
[안드로이드] 랜덤으로 로또 번호 자동 생성해서 번호 이미지 띄우기 Random 클래스와 Bitmap을 이용해서 랜덤으로 숫자를 뽑고 화면에 해당 이미지를 띄워주는 예제를 만들어보겠습니다. 로또볼 이미지는 구글에 '로또볼 이미지'를 검색하셔서 사용하시면 됩니다. drawable 폴더에 로또볼 이미지가 1번부터 45번까지 모두 준비가 되셨다고 가정하고 진행하도록 하겠습니다. 적절한 이미지를 못찾으셔서 제가 사용한 이미지가 필요하신 분은 댓글을 남겨주시면 메일로 발송해드릴게요. 1. activity_main.xml 리니어 레이아웃 안에 또 다른 리니어 레이아웃을 추가했는데요. 그 안에 이미지들을 추가하려고 합니다. 아이디 값은 자유롭게 수정해서 사용해보세요. 2. MainActivity.java import android.content.res.Resources; import.. 더보기
[안드로이드] QR코드 인식해서 로또 당첨 조회 하기 QR코드를 스마트폰의 카메라로 스캔해서 로또 당첨 조회를 하는 예제를 만들어보겠습니다. 1. build.gradle(Module: app) defaultConfig { applicationId "com.everyshare.qrcode" minSdkVersion 24 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } sdk 최소 버전은 24로 설정해주셔야 합니다. minSdkVersion 24 - 이 부분만 수정했습니다. dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' .. 더보기
[안드로이드] 웹뷰 사용하기 - WebView 웹뷰를 사용해서 간단하게 웹페이지를 띄우는 예제를 만들어보겠습니다. 1. AndroidManifest.xml 인터넷 기능을 사용하기 위해서 인터넷 권한을 줘야 합니다. android:usesCleartextTraffic="true" 를 추가해줍니다. 추가하셔야 err_name_not_resolved 에러가 뜨지 않습니다. 더 자세한 사항은 링크를 참고해주세요 2. activity_main.xml 3. menu_main.xml res폴더 안에 menu폴더를 만들고 menu_main.xml 파일을 추가해줍니다. 4. MainActivity.java import android.content.Context; import android.support.v7.app.AppCompatActivity; import an.. 더보기
[안드로이드] 커스텀 토스트(Toast), 스낵바(Snackbar) 사용하기 커스텀뷰를 이용한 토스트 그리고 스낵바를 띄우는 예제를 만들어보겠습니다. 1. activity_main.xml 2. toast.xml (토스트의 background 꾸미기, drawable 폴더에 생성) stroke - 테두리 색상 설정 solid - 내부 색상 설정 corners - 모서리를 둥글게 하는 정도 숫자가 클수록 더 둥글게 변합니다. 3. toast_layout.xml (토스트의 뷰를 꾸미는 레이아웃, layout 폴더에 생성) 2번에서 만든 toast.xml을 TextView의 background에 설정해줍니다. 4. MainActivity.java package com.example.sampletoast; import android.graphics.Color; import android... 더보기
[안드로이드] 앱 내부에서 언어 설정 변경하기 (feat.Spinner) 여러 국가의 언어를 사용하는 어플을 제작하기 위해서 여러 가지 방법이 있지만 앱 내부에서 설정을 만들고 싶으실 때 참고하시면 좋을 것 같습니다. 저는 Spinner를 사용해서 언어를 선택하고 원하는 언어로 설정되게 하는 예제를 만들어보겠습니다. 1. activity_main.xml android:spinnerMode="dropdown" 스피너의 아이템들이 밑으로 바로 출력되는 방식입니다. android:spinnerMode="dialog" 스피너의 아이템들이 다이얼로그 형식으로 출력 되는 방식입니다. 2. strings.xml spinner 안녕 한국어 영어 중국어 영어, 중국어도 똑같이 추가해줍니다. 다른 국가의 언어를 추가하는 방식은 링크를 참고해주세요 3. MainActivity.java packa.. 더보기

반응형