본문 바로가기

Android

[안드로이드]merge태그 를 사용하는 이유1. 중복되는 코드를 안에 작성하고 쓰이는 곳에서 로 불러와서 사용한다.2. 뷰계층을 최적화 시킨다. 태그를 이해하기 위해서는 안드로이드의 뷰 계층에 대해서 알고 있어야 한다. *안드로이드 스튜디오의 Device Monitor에서 Hierarchy View를 사용하여 본 뷰계층 (출처:보댕님 블로그) 1. DecorView : 뷰그룹을 관리하지 않고, 밝기 조도 등을 관리하는 레이아웃2. LinearLayout : 전체 뷰그룹을 담당하는 이름없는 리니어레이아웃으로 타이틀바 영역과 컨텐츠 영역으로 나뉜다.3-1. FrameLayout + TextView : 타이틀바를 담당한다.3-2. FrameLayout : 컨텐츠 영역을 담당한다. (우리가 짜는 실제 레이아웃의 최상단)여기까지가 안드로이.. 더보기
[안드로이드]타이틀바, 액션바 커스터마이징(full screen) 안드로이드 액션바와 상태바는 다음과 같이 구성되어 있다. 상태바와 액션바는 메니페스트와 소스상에서 수정할 수 있다. 1. 소스상에서 없애기public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //상태바 없애기 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //타이틀바 없애기 requestWindowFeature(Window.FEATURE_N.. 더보기
[안드로이드]ndk란? NDKjava만 사용하여 필요한 기능과 성능을 모두 만족시키기는 힘들다. 그래서 C나 C++ 언어로 작성된 프로그램을 java에서 사용할 수 있도록 JDK에서 제공하는 것이 JNI(Java Native Interface) 이다. 그리고 NDK는 Developer문서에서도 볼 수 있듯이The Android NDK is a toolset that lets you implement parts of your app using native-code languages such as C and C++. For certain types of apps, this can help you reuse code libraries written in those languages.[출처] JNI 구현을 위한 사용순서|작성자 스시왕.. 더보기
[안드로이드]Media 클래스MediaPlayer 미디어 재생MediaRecord 미디어 생성AudioManager : 볼륨설정작업 AudioRecord : 음성녹음작업ExifInterface : jpeg에서 사진의 부가정보(exif)를 읽거나 씀. 부가정보란 사진의 날짜나 위도,경도 등의 정보를 헤더에 넣은것. -미디어파일을 재생하는 클래스를 생성.미디어 플레이어는 미디어플레이 장치와 앱을 연결한다. -데이터소스 설정 data source : file, streaming, resource, uri -play준비미디어데이터 : 재생을 위한 정보와 데이터미디어 장치에 이러한 설정을 하는것 -play -stop다시 play하려면 play준비로 간다. -미디어플레이어 반납 미디어 재생 절차 reset() 함수를 호출하면 idle상태.. 더보기
[안드로이드] NFC사용하기 NFC : Near Field Communication10cm 이하의 거리에서 데이터를 주고 받는 기술 동작방식card Emulation : 단말을 태그처럼 동작하게 한다. 프로그램으로 태그를 만들어서 신용카드나 버스카드등을 넣을 수 있다.Reader/Writer : 종이딱지같은 태그에 단말을 갖다 대면 태그에 있는 정보를 read하거나 write할 수 있다.peer-to-peer : 단말 두개를 붙여서 데이터를 전송 (안드로이드 빔) 블루투스에 비해서 가장 적은 에너지를 사용한다. NDEF메시지를 태그로부터 읽는다. 사용방법1. 메니패스트 설정2. 단말기 설정에서 NFC활성화 NfcAdapter객체를 얻어서 지원여부를 확인한다. if(!mNfcAdapter.isEnabled() : 단말에서 NFC가 활.. 더보기
[안드로이드]GCM이란? node.js로 푸시알람 구현하기 GCM(Google Cloud Message)이란? Google Cloud Messaging(GCM)개발자에게 서버에서 안드로이드 디바이스의 application으로 데이터를 전송하는 것을 도와주는 무료 서비스이다.3rd-party 에서 새로운 데이터가 있을 경우 gcm 서비스를 통하여 message를 특정 device의 특정 application으로 전송해준다. Message는 최대 4kb의 경량 메시지이다.GCM 서비스는 message를 큐잉하며 이를 단말에 전달해주는 처리를 담당한다.GCM connection Servers는 http / xmpp 지원.GCM Architecturalapp은 message를 받기위해 GCM으로부터 device를 register함. 이 register를 3rd-part.. 더보기
[Tmap] 지도에 마커 띄우기 TMapMarkerItem tourMarkerItem = new TMapMarkerItem(); TMapPoint tpoint = new TMapPoint(mapY, mapX); tourMarkerItem.setTMapPoint(tpoint); tourMarkerItem.setVisible(TMapMarkerItem.VISIBLE); tourMarkerItem.setIcon(tourBitmap); mMapView.setCenterPoint(mapX,mapY , false); mMapView.addMarkerItem("tourMarker", tourMarkerItem);1. TMapMarkerItem 객체를 생성한다.2. TMapPoint 객체를 생성하고 좌표를 등록한다. ( point를 생성할때 (y,x.. 더보기
[안드로이드]텍스트사이즈 sp와 dp의 차이 sp : 글씨 크기 지정에 쓰이는 단위임. 예를 들어 워드 프로세서에서 폰트 크기의 쓰임새와 같음. dp : 객체들의 크기 지정에 쓰이는 단위임. 예를 들어 4센티 크기의 네모박스를 그려라... 할 때의 센티라는 단위 처럼. (실제 레이아웃에서 객체의 크기 지정에서는 dp와 px 가 쓰임.)안드로이드 폰 설정을 보면 앱 외적으로 폰트 사이즈를 변경하는 부분이 있다. (나이든 분들을 위해? 기본폰트를 크게할수있음)이 설정이 sp단위로 되어있기때문에 앱 내에서 폰트 사이즈를 sp단위로 설정을 했을경우폰 설정을 변경했을 시 앱 내에도 sp사이즈가 변경되기때문에 UI가 깨지는 경우가 발생한다!! 결론 : sp대신 dp를 쓰자!! 더보기
[안드로이드]인텐트로 액티비티간 이동 + 데이터전달 액티비티에서 다른 액티비티로 이동하려면 Intent를 써야한다. 액티비티1int val = 10; Intent intent = new Intent(getApplicationContext(),RouteActivity.class); intent.putExtra("val", val); startActivity(intent); finish(); // 전꺼 Activity 종료액티비티1 에서 RouteActivity로 이동하면서 val 변수값을 전달하는 소스 Intent i = getIntent(); int val = i.getIntExtra("val",0);RouteActivity에서 받는 소스전달하는 매개변수의 타입에 따라i.getStringi.getInt 등이 있다.위 소스에서 i.getIntExtra("v.. 더보기
arraylist 데이터들을 json으로 만들기 String 변수에 들어있는 값과arraylist에 들어있는 데이터들을 합쳐서 json으로 만드려면 어떻게 해야할까?예를들어String id = "userID"; String planName = "planA"두 변수에 값이 들어있고,ArrayList placeList = new ArrayList();arrayList가 있다.*Place클래스public class Place { String contentid; String contenttypeid; String mapx; String mapy; }이것들을{ "id": "userID", "planName": "planA", "item": [ { "contentid": "test_1_contentid", "contenttypeid": "test_1_conten.. 더보기