달력

12

« 2019/12 »

  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

   

   

소셜미디어에 대한 비주얼 지도

https://conversationprism.com/

   

   

   

직접다운로드







   

   

or

https://conversationprism.com/free-downloads/

Posted by codedragon codedragon

댓글을 달아 주세요

Google Map API를 이용해 지도 표시 하기

   

   

강의 내용

activity_main.xml

RelativeLayout 변경

<fragment>태그 추가

  

MainActivity.java

지도에 강남역에 표시하기

//기본 마커표시

//화면에 지정한 위도 경도 표시

//맵에 원하는 위치 표시

확인

   

내 위치 아이콘 클릭시 현재 위치로 이동

//나의 현재 위치 읽어오기

//나의 현재 위치로 이동할 수 있는 아이콘 표시

확인

   

//마커 표시

-//마커 모양 변경

   

마커가 클릭되면 토스트 메시지 오픈

//맵에 이벤트 연결

//마커 클릭시 이벤트 핸들러-onMarkerClick

//말풍선 클릭시 이벤트 핸들러-onInfoWindowClick

  

AndroidManifest.xml

android:minSdkVersion="11"

권한 추가

글 API Key 추가

\res\drawable\

마커 이미지 추가

marker_flag.png

marker.png

pin.png

   

   

<fragment>태그 추가

XML레이아웃에 지도를 보여주기 위한 프래그먼트 추가

프래그먼트는 <fragment>태그를 사용해서 뷰처럼 화면의 특정 영역을 할당받게 됩니다.

   

id

자바코드에서 사용하기 위해 맵뷰에 주어진 ID값입니다.

class

"com.google.android.gms.maps.MapFragment"

속성으로 지정된 클래스가 화면영역에 보여지게 되며

예제에서는 MapFragment클래스가 사용되고 있습니다.

   

   

AndroidManifest.xml 추가된 항목

   

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="kr.android.map"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk

        android:minSdkVersion="11"

        android:targetSdkVersion="19" />

<!--OpenGL 2.0 이상을 지원하는 단말기에서 실행되도록 하기-->        

<uses-feature android:required="true" android:glEsVersion="0x00020000"/>        

<!--권한 설정-->

<uses-permission android:name="android.permission.INTERNET"/>

<!--Cell ID, WiFi 관련 Permission-->

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<!--GPS 관련 Permission -->

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<!--네트워크 상태 정보 관련 Permission -->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

     

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

          

        <!-- 구글 API Key 추가 -->

        <meta-data

                android:value="AIzaSyDPPJAMjDYQkBDxp2dOS3NPq5vjFKY6_QQ"

                android:name="com.google.android.maps.v2.API_KEY"/>

        <meta-data

                        android:name="com.google.android.gms.version"

                        android:value="@integer/google_play_services_version" />

          

        <activity

            android:name="kr.android.map.MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

   

출처: <https://github.com/10zeroone/study_Android/blob/master/72MapDemo/AndroidManifest.xml>

  

   

   

 

   

출력 결과

에뮬레이터 실행시 구동되지 않음

   

map.animateCamera()이용해서 해당 위치를 중심으로 지도를 보여주게 됩니다.

   

디바이스에서 실행한 화면

   

   

   

   

   

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

Google Map V2 메인 페이지 

https://developers.google.com/maps/documentation/android/

   

   

Google Map API 사용하기 위한 절차

  • 구글 지도 사용을 위한 API키 생성
    • 인증서 지문 생성
    • Google APIs Console 프로젝트 생성
    • Google Maps Android API 항목 활성화
    • 새로운 키 생성 및 인증서 지문 등록
  • Google Play Services SDK 다운로드
  • 구글맵 라이브러리 프로젝트 가져오기
  • 프로젝트 생성
    • 구글맵 라이브러리를 지정 (project.properties )
    • 안드로이드 마니페이스 파일 설정 (AndroidManifest.xml)
    • activity_main.xml 작업
    • MainActivity 작업

   

   

구글 지도 사용을 위한 API키 생성

   

인증서 지문 생성

C:\Users\[로그인아이디]\.android

디렉터리의 debug.keystore을 이용해 Fingerprint(인증서 지문)을 생성하겠습니다.

   

   

시작>실행에 cmd를 입력하고 cmd 창을 연 후 아래와 같이 .android 디렉토리로 이동

cd .android

   

   

dir

debug.keystore파일 있는지 확인합니다.

   

   

인증서 지문 생성을 위한 명령어를 입력후 엔터를 클릭합니다.

keytool -v -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android

 

   

   

C:\Users\yuriyuri\.android>keytool -v -list -alias androiddebugkey -keystore d

ebug.keystore -storepass android -keypass android

별칭 이름: androiddebugkey

생성 날짜: 2014. 5. 6

항목 유형: PrivateKeyEntry

인증서 체인 길이: 1

인증서[1]:

소유자: CN=Android Debug, O=Android, C=US

발행자: CN=Android Debug, O=Android, C=US

일련 번호: 4cabc2ae

적합한 시작 날짜: Tue May 06 12:37:32 KST 2014, 종료 날짜: Thu Apr 28 12:37:32 K

ST 2044

인증서 지문:

MD5: FB:34:82:DE:26:31:32:4D:33:81:49:02:99:75:CC:69

SHA1: 22:8A:96:66:24:6F:34:83:CA:F9:77:BC:64:77:7E:B6:BA:8B:AE:0D

SHA256: BF:2E:BE:73:B3:78:7D:D7:F3:FB:3E:DC:47:F9:0C:67:C3:D4:E4:74:66:

28:2D:21:6F:F8:8E:3A:A8:65:FF:20

서명 알고리즘 이름: SHA256withRSA

버전: 3

   

확장:

   

#1: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: 34 1A 84 C0 2F EA BC 5B 9E F0 87 1F 77 24 B6 19 4.../..[....w$..

0010: 17 AD 83 FE ....

]

]

   

   

C:\Users\yuriyuri\.android>

   

   

   

   

Google APIs Console 프로젝트 생성

구글 지도 API 키 생성을 위해 Google APIs Console로 이동

https://cloud.google.com/console/project

   

   

Create Project 버튼 클릭하여 프로젝트 생성

   

   

프로젝트 생성 완료!

생성한 프로젝트 이름을 클릭합니다.

   

   

Google Maps Android API 항목 활성화

Enable an API

   

Google Maps Android API v2을 찾습니다.

   

Google Maps Android API v2 오른쪽의 OFF버튼을 클릭해 ON으로 변경합니다.

   

상단을 보면 ON한 항목들을 모두 확인할 수 있습니다.

   

   

새로운 키 생성 및 인증서 지문 등록

APIs & auth-Credentials 클릭 >

Public API access영역의 Create new Key클릭

   

Android Key클릭

   

미리 생성해 둔 SHA1지문 등록 하겠습니다.

등록형식에 맞게 입력한 후 Create클릭

   

등록 형식 : SHA1지문;package 이름

22:8A:96:66:24:6F:34:83:CA:F9:77:BC:64:77:7E:B6:BA:8B:AE:0D;kr.android.map

   

등록 완료!

   

   

Google Play Services SDK 다운로드

   

Android SDK Manager를 실행한 후 Extra 항목에서 Google Play Services 선택해서 설치

   

   

   

   

   

프로젝트 생성 및 구글맵 라이브러리 프로젝트 가져오기

File > New > Other... 선택

   

Android-Android Project from Existing Code 선택 >

Next

   

Browse...

   

C:\javanAndroid\android-sdk_r22.6.2-windows\android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib

구글맵 라이브러리 프로젝트가 있는 폴더 선택 >

확인

   

libproject\google-play-service를 제외하고 체크를 모두 해제함

Copy projects into workspace 체크

Finish

   

   

   

구글맵 라이브러리 경로

C:\javanAndroid\android-sdk_r22.6.2-windows\android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib

   

   

프로젝트 생성

   

   

라이브러리 등록하기 (google-play-services_lib)

프로젝트 선택 >마우스 우클릭 > Properties

   

Add

   

선택 > OK

   

OK

   

라이브러리 등록 완료!

   

구글맵 라이브러리를 지정 확인

project.properties 파일을 오픈합니다.

   

android.library.reference.1=../appcompat_v7 밑에 아래와 같이 구글맵 라이브러리를 지정되었는지 확인합니다.

target=android-19

android.library.reference.1=../appcompat_v7

android.library.reference.2=../google-play-services_lib

   

   

   

안드로이드 마니페이스 파일 설정

AndroidManifest.xml

<!--OpenGL 2.0 이상을 지원하는 단말기에서 실행되도록 하기-->

<uses-feature android:required="true" android:glEsVersion="0x00020000"/>

   

<!--권한 설정-->

<uses-permission android:name="android.permission.INTERNET"/>

<!--Cell ID, WiFi 관련 Permission-->

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<!--GPS 관련 Permission -->

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<!--네트워크 상태 정보 관련 Permission -->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

   

application 태그에 구글API Key 지정 하기

AndroidManifest.xml

<!-- 구글 API Key 추가 -->

<meta-data

android:value="AIzaSyDPPJAMjDYQkBDxp2dOS3NPq5vjFKY6_QQ"

android:name="com.google.android.maps.v2.API_KEY"/>

<meta-data

                android:name="com.google.android.gms.version"

                android:value="@integer/google_play_services_version" />

 

android:value=항목 값에는 API Key값을 복사하여 붙여 넣습니다.

   

   

   

activity_main.xml 작업

 

<fragment

android:id="@+id/map"

class="com.google.android.gms.maps.MapFragment"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>

 

   

   

MainActivity 작업

 

public class MainActivity extends Activity{

   

private GoogleMap map;

private static final LatLng MAP_ADDRESS = new LatLng(37.498321,127.027702);

   

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

   

if(map == null){

map = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

if(map != null){

   

map.addMarker(new MarkerOptions()

.position(MAP_ADDRESS)

.title("강남역")

.snippet("나 여기 있어요~~~") .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));

   

//화면에 지정한 위도 경도 표시

CameraPosition cp = new CameraPosition.Builder().target(MAP_ADDRESS).zoom(17).build(); map.animateCamera(CameraUpdateFactory.newCameraPosition(cp));

}

}

}

}

 

Posted by codedragon codedragon

댓글을 달아 주세요

   

지도(Map)

기본 지도 이미지 위에 표시되는 모든 것들은 각각 레이어로 분리되어 보여지고 구글맵에서는 이런 레이어들을 오버레이라고 부릅니다.

   

   

Map 용어

레이어(Layer)

유사항 속성을 가진 객체들을 넣어둔 층

오버레이(Overlay)

레이어의 집합

마커(Marker)

아이콘을 이용해 원하는 위치를 포인트로 쉽게 표시하기 위해 사용

   

   

Map 메소드

getMaxZoomLevel()

최대로 설정할 수 있는 축적값을 확인할수 있습니다.

이치에 따라 다르지만 일반적으로 19~21사이가 최대 축척값으로 나타납니다.

map.animateCamera()

animateCamera() 이용해서 해당 위치를 중심으로 지도를 보여주게 됩니다. 축척 값이 클수록 가까이서 본 것처럼 확대되어 보여지게 됩니다.

17~18의 축척값은 도시 건물 몇 개를 한눈에 볼 수 있을 정도로 확대되어 보여집니다.

  

  

위도와 경도 값은 LatLng객체를 이용해서 만들 수 있으며 지도 위에 표시되는 새로운 포인트 생성할 수 있습니다.

Posted by codedragon codedragon

댓글을 달아 주세요

 

View

안드로이드 UI의 기본적인 구축 요소.

안드로이드 SDK의 거의 모든 위젯과 레이아웃 클래스의 기반 클래스

   

   

View 클래스의 기본 메소드와 용도 

메서드

용도

setBackgroundColor(int color)

백그라운드 색상 설정

setBackgroundDrawable(Drawable d)

백그라운드 이미지 설정

setMinimumHeight(int minHeight)

최소 높이 설정

setMinimumWidth(int minWidth)

최소 너비 설정

setPadding(int left, int right, int top, int bottom)

여백 사이즈 설정

setClickable(boolean c)

엘리먼트의 클릭 가능 여부 체크

setFocusable(boolean f)

엘리먼트의 포커스 가능 여부 체크

setOnClickListener(OnClickListener l)

클릭 이벤트 발생 여부 체크 설정

setOnFocusChangeListener(OnFocusChangeListener l)

포커스 이벤트 발생 여부 체크 설정

setLayoutParams(ViewGroup.LayoutParams l)

레이아웃 파라미터 설정

   

   

   

TextView

텍스트뷰는 Activity에 테스트(문자열)을 표시하기 위한 뷰이다.

   

TextView 주요 메서드 

메서드

용도

setGravity(int gravity)

중력(위, 아래, 왼쪽, 오른쪽 등) 셋팅

setHeight(int height)

높이 셋팅

setWidth(int width)

넓이 셋팅

setTypeFace(TypeFace face)

서체 셋팅

setText(CharSequence text)

텍스트 셋팅

   

   

XML 레이아웃 파일에 기재되는 주요 속성 

속성

문자열,리소드 ID

의미

android:layout_width

수치와 단위

sp

dp

px

안드로이드에서기본적으로 제공하는 레이아웃들을 사용할 때 항상 지정해야 하는 속성

누락시 오류발생

android:layout_height

수치와 단위

sp

dp

px

안드로이드에서기본적으로 제공하는 레이아웃들을 사용할 때 항상 지정해야 하는 속성

누락시 오류발생

android:typeface

normal

sans

serif

monospace

  

문자열 스타일 지정(문자열 폰트 설정)

안드로이드에서 제공하는 몇개의 내장 폰트를 설정할 수 있습니다.

  

android:textStyle

italic

bold

  

굵은 글꼴(bold), 기울인 글꼴(italic), 굵은 글꼴과 기울인 글꼴(bold_italic)로 할지 지정

| 기호를 통해 여러 개의 속성값 지정( bold|italic )

  

android:textColor

#FF0000 – 빨간색

색깔을 16진수 RGB 포맷으로 지정

android:text

문자열, 리소드ID

텍스트 뷰로 표시하는 텍스트

android:gravity

left, center 등

뷰보다 텍스트가 짧을 때 정렬 위치

android:maxLines

정수값

표시할 최대 행수

android:minLines

정수값

표시할 최소 행수

android:textSize

수치와 단위

sp

dp

px

텍스트의 사이즈를 지정함.

단위에는 sp(스케일된 픽셀수)나 mm(밀리미터)등을 사용할 수 있음

android:cursorVisible

true, false

true의 경우에는 cursor를 표시함

android:password

true, false

true의 경우에는 입력된 문자를 표시하지 않고 패스워드 Dot를 표시함

android:singleLine

true, false

false: 기본값, 여러줄로 표시

android:lineSpacingMultiplier

정수값

줄 간격을 배수로 설정

android:lineSpacingExtra

정수값

줄 간격을 여유값으로 설정

android:capitalize

characters(글자)

words(단어)

sentences(문장)

각 단위로 맨 앞 글자를 대문자로 표시

android:ellipsize

none(기본값, 뒷부분)

start(앞부분)

middle(중간부분)

end(끝부분)

문자열에서 잘라서 표시할 부분을 설정

줄임 표시

android:margin

수치와 단위

위젯과 내용물 사이의 여백

android:layout_margin

수치와 단위

위젯과 부모 컨테이너 사이의 여백

   

   

id속성

선언

@+id/[ID]

참조

R.id.[ID]

   

   

backgroud 속성

색상지정 Format

#RGB

#ARGB

#RRGGBB

#AARRGGBB

이미지 리소스 지정

android:backgroud="@drawable/mainimage"

   

   

여백 속성 도식도

   

   

autoLink 속성 값

텍스트에 문맥 링크 추가

문자열에 들어 있는 링크 정보를 자동으로 찾아 링크 색상으로 표시하고 누르면 필요한 기능을 수행하게 됩니다.

autoLink 속성에 사용할 수 있는 값 (ex : android:autoLink="web|email")

내용

web

텍스트 안의 URL을 링크로 만듭니다.

클릭하면 웹 브라우저가 실행되면서 해당 페이지가 표시됩니다.

email

텍스트 안의 이메일 주소를 링크로 만듭니다.

클릭하면 메일 클라이언트가 실행됩니다.(해당 수신자가 자동으로 입력된 상태로)

phone

텍스트 안의 전화번호를 링크로 만듭니다.

클릭하면 전화 걸기 응용프로그램이 실행됩니다.(해당 번호가 입력된 상태로)

map

텍스트 안의 지리적 주소를 링크로 만듭니다.

클릭하면 Google 지도 응용프로그램이 실행되고 해당 위치정보를 표시해줍니다.

none

자동 링크를 사용하지 않음(기본값)

all

web, email, phone, map을 모두 사용

linksClickable="false" 여러 링크 대상 형식들을 강조해서 표시하되 사용자가 클릭하지는 못 함

   

   

View의 계층도

TAG @+id, aarrggbb, Android, android:capitalize, android:cursorVisible, android:ellipsize, android:gravity, android:layout_height, android:layout_margin, android:layout_width, android:lineSpacingExtra, android:lineSpacingMultiplier, android:margin, android:maxLines, android:minLines, android:password, android:singleLine, android:text, android:textColor, android:textSize, android:textStyle, android:typeface, App, argb, autoLink, backgroud 속성, bold, button, cursor, eclipse, email, google, id속성, italic, java, java programming, JDK, LinearLayout, linksClickable, map, margin, mobile, monospace, object, padding, phone, R.id, rgb, rrggbb, sans, sdk, serif, setBackgroundColor, setBackgroundDrawable, setClickable, setFocusable, setGravity, setHeight, setLayoutParams, setMinimumHeight, setMinimumWidth, setOnClickListener, setOnFocusChangeListener, setPadding, setText, setTypeFace, setWidth, smartphone, SUN, Sun microsystems, TextView, View class, View 계층도, View 클래스, viewgroup, View의 계층도, web, XML 레이아웃, 구글, 너비, 넓이, 높이, 레이아웃, 레이아웃 파라미터, 모바일폰, 문자열 스타일, 문자열 폰트, 백그라운드, 부모 컨테이너, 뷰 계층도, 뷰 클래스, 색상지정, 색상지정 Format, 색상지정 형식, 서체, 셋팅, 스마트폰, 안드로이드, 안드로이드 sdk, , 엘리먼트, 엘리먼트 클릭, 엘리먼트 포커스, 여백, 여백 사이즈, 여백 속성, 여백 속성 도식도, 위젯, 이미지 리소스 지정, 이클립스, 자바, 자바 프로그래밍, 줄 간격, 줄임, 중력, 클릭 이벤트, 텍스트, 텍스트뷰, 포커스, 포커스 이벤트
Posted by codedragon codedragon

댓글을 달아 주세요