<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>핵초보 개발자의 일상</title>
    <link>https://metal00456.tistory.com/</link>
    <description>핵 초보 개발자의 개발이야기</description>
    <language>ko</language>
    <pubDate>Fri, 15 May 2026 18:59:32 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>스어비</managingEditor>
    <image>
      <title>핵초보 개발자의 일상</title>
      <url>https://t1.daumcdn.net/cfile/tistory/243DDA4C57E888C20C</url>
      <link>https://metal00456.tistory.com</link>
    </image>
    <item>
      <title>MYSQL 컬럼명으로 테이블 찾기</title>
      <link>https://metal00456.tistory.com/23</link>
      <description>&lt;pre name=&quot;code&quot; class=&quot;brush:sql;&quot;&gt; 
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME='컬럼명';

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%컬럼명%';

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%컬럼명%' AND TABLE_SCHEMA='디비명';
&lt;/pre&gt;</description>
      <category>개발/SQL</category>
      <category>MySQL</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/23</guid>
      <comments>https://metal00456.tistory.com/23#entry23comment</comments>
      <pubDate>Wed, 10 Jul 2019 15:54:01 +0900</pubDate>
    </item>
    <item>
      <title>[Android] / 안드로이드 / googlemap distance / 구글맵 두 위치 사이의 거리 구하기</title>
      <link>https://metal00456.tistory.com/22</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;두 마커사이의 거리나 어느 특정한 지점간의 거리를 구할때의 방법입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;public double &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getDistance&lt;/span&gt;(LatLng LatLng1&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;LatLng LatLng2) {&lt;br /&gt;    &lt;span style=&quot;color:#cc7832;&quot;&gt;double &lt;/span&gt;distance = &lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;Location locationA = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;Location(&lt;span style=&quot;color:#6a8759;&quot;&gt;&quot;A&quot;&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;locationA.setLatitude(LatLng1.&lt;span style=&quot;color:#9876aa;&quot;&gt;latitude&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;locationA.setLongitude(LatLng1.&lt;span style=&quot;color:#9876aa;&quot;&gt;longitude&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;Location locationB = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;Location(&lt;span style=&quot;color:#6a8759;&quot;&gt;&quot;B&quot;&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;locationB.setLatitude(LatLng2.&lt;span style=&quot;color:#9876aa;&quot;&gt;latitude&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;locationB.setLongitude(LatLng2.&lt;span style=&quot;color:#9876aa;&quot;&gt;longitude&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;distance = locationA.distanceTo(locationB)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    return &lt;/span&gt;distance&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;먼저 첫 번째 지점의 Latitude와 Longitude 값과 두 번째 지점의 Latitude, Longitude 값을 알아야합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;가져온 값을 바탕으로 locationA 와 locationB 2개의 객체를 생성 해줍니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고 distanceTo라는 함수를 이용해서 2 location간의 일직선 거리를 구할 수 있습니다.&lt;/p&gt;</description>
      <category>개발/Android</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/22</guid>
      <comments>https://metal00456.tistory.com/22#entry22comment</comments>
      <pubDate>Wed, 16 Nov 2016 15:10:08 +0900</pubDate>
    </item>
    <item>
      <title>[Android] / 안드로이드 / Marker Animation / 마커에 깜빡이는 애니메이션 효과주기</title>
      <link>https://metal00456.tistory.com/21</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Android Googlemap의 Marker에 깜빡이는 애니메이션 효과를 주고싶어 직접 구현했습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 전체적인 코드를 보시겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color:#808080;&quot;&gt;/*마커 깜빡임을 구현하는 함수*/ //직접구현&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;public boolean &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;fadeMarker&lt;/span&gt;(&lt;span style=&quot;color:#cc7832;&quot;&gt;final &lt;/span&gt;Marker marker) {&lt;br /&gt;    &lt;span style=&quot;color:#808080;&quot;&gt;//Make the marker fade&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#808080;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;final &lt;/span&gt;Handler handler = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;Handler()&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;handler.post(&lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;Runnable() {&lt;br /&gt;        &lt;span style=&quot;color:#cc7832;&quot;&gt;float &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;        int &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;i &lt;/span&gt;= &lt;span style=&quot;color:#6897bb;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;        int &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;timer&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color:#bbb529;&quot;&gt;@Override&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#bbb529;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;public void &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;run&lt;/span&gt;() {&lt;br /&gt;            &lt;span style=&quot;color:#cc7832;&quot;&gt;if&lt;/span&gt;(&lt;span style=&quot;color:#9876aa;&quot;&gt;i&lt;/span&gt;%&lt;span style=&quot;color:#6897bb;&quot;&gt;2 &lt;/span&gt;== &lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style=&quot;color:#9876aa;&quot;&gt;f &lt;/span&gt;= &lt;span style=&quot;color:#6897bb;&quot;&gt;1f&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;            &lt;/span&gt;}&lt;br /&gt;            &lt;span style=&quot;color:#cc7832;&quot;&gt;else&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;                &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;f &lt;/span&gt;= &lt;span style=&quot;color:#6897bb;&quot;&gt;0f&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color:#b389c5;&quot;&gt;marker&lt;/span&gt;.setAlpha(&lt;span style=&quot;color:#9876aa;&quot;&gt;f&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;i&lt;/span&gt;++&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;timer &lt;/span&gt;= &lt;span style=&quot;color:#9876aa;&quot;&gt;timer &lt;/span&gt;+ &lt;span style=&quot;color:#6897bb;&quot;&gt;300&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;            if&lt;/span&gt;(&lt;span style=&quot;color:#9876aa;&quot;&gt;timer &lt;/span&gt;&amp;lt; &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;RECOMMEND_MARKER_SHOW_TIME&lt;/span&gt;){&lt;br /&gt;                &lt;span style=&quot;color:#b389c5;&quot;&gt;handler&lt;/span&gt;.postDelayed(&lt;span style=&quot;color:#cc7832;&quot;&gt;this, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;300&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;            &lt;/span&gt;}&lt;br /&gt;            &lt;span style=&quot;color:#cc7832;&quot;&gt;else &lt;/span&gt;&lt;span style=&quot;color:#b389c5;&quot;&gt;marker&lt;/span&gt;.remove()&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;        &lt;/span&gt;}&lt;br /&gt;    })&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    return true;&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;구현원리는&amp;nbsp;0.3초마다 alpha값을 0과 1로 바꾸어가면서 깜빡이는 것 처럼 보이게 효과를 만들었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color: rgb(43, 43, 43); color: rgb(169, 183, 198); font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;if&lt;/span&gt;(&lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;i&lt;/span&gt;%&lt;span style=&quot;color: rgb(104, 151, 187);&quot;&gt;2 &lt;/span&gt;== &lt;span style=&quot;color: rgb(104, 151, 187);&quot;&gt;0&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;f &lt;/span&gt;= &lt;span style=&quot;color: rgb(104, 151, 187);&quot;&gt;1f&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;            &lt;/span&gt;}&lt;br /&gt;            &lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;else&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;                &lt;/span&gt;&lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;f &lt;/span&gt;= &lt;span style=&quot;color: rgb(104, 151, 187);&quot;&gt;0f&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: rgb(179, 137, 197);&quot;&gt;marker&lt;/span&gt;.setAlpha(&lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;f&lt;/span&gt;)&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;i&lt;/span&gt;++&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;이 부분을 보면 알 수 있겠지만 i = 2로 시작을 하고 i가 짝수이면 marker의 alpha값이 1 // i가 홀수이면 marker의 alpha값을 0으로 바꾸어줍니다. 그리고 루틴이 한번 돌때마다 i를 1씩 증가시켜서 깜빡이는 효과를 만드는것입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color: rgb(43, 43, 43); color: rgb(169, 183, 198); font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;timer &lt;/span&gt;= &lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;timer &lt;/span&gt;+ &lt;span style=&quot;color: rgb(104, 151, 187);&quot;&gt;300&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;            if&lt;/span&gt;(&lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;timer &lt;/span&gt;&amp;lt; &lt;span style=&quot;color: rgb(152, 118, 170); font-style: italic;&quot;&gt;RECOMMEND_MARKER_SHOW_TIME&lt;/span&gt;){&lt;br /&gt;                &lt;span style=&quot;color: rgb(179, 137, 197);&quot;&gt;handler&lt;/span&gt;.postDelayed(&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;this, &lt;/span&gt;&lt;span style=&quot;color: rgb(104, 151, 187);&quot;&gt;300&lt;/span&gt;)&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;            &lt;/span&gt;}&lt;br /&gt;            &lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;else &lt;/span&gt;&lt;span style=&quot;color: rgb(179, 137, 197);&quot;&gt;marker&lt;/span&gt;.remove()&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;또 저는 마지막에 RECOMMEND_MARKER_SHOW_TIME보다 작을때까지는 계속 깜빡이는 효과를 주다가 그 이상의 시간이되면 marker를 지워버리는 효과를 추가해주었습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;만약 마커가 지워지지 않고 계속 유지되어야 한다면&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: rgb(43, 43, 43); color: rgb(169, 183, 198); font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: rgb(179, 137, 197);&quot;&gt;handler&lt;/span&gt;.postDelayed(&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;this, &lt;/span&gt;&lt;span style=&quot;color: rgb(104, 151, 187);&quot;&gt;300&lt;/span&gt;)&lt;span style=&quot;color: rgb(204, 120, 50);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;postDelayed를 통해서 0.3초 후에 다시 handler를 시작해주어서 반복적인 효과를 주시면 되겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;마커에 강조효과를 주고싶을때 뛰어난 효과를 발휘합니다 :)&lt;/p&gt;</description>
      <category>개발/Android</category>
      <category>Alpha</category>
      <category>Android</category>
      <category>app</category>
      <category>googlemap</category>
      <category>handler</category>
      <category>Marker</category>
      <category>구글맵</category>
      <category>깜빡임</category>
      <category>마커</category>
      <category>안드로이드</category>
      <category>앱</category>
      <category>어플</category>
      <category>어플리케이션</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/21</guid>
      <comments>https://metal00456.tistory.com/21#entry21comment</comments>
      <pubDate>Tue, 15 Nov 2016 16:04:37 +0900</pubDate>
    </item>
    <item>
      <title>[iOS] / Objective C / 아이폰 / timestamp to NSDate / NSDate to NSString</title>
      <link>https://metal00456.tistory.com/20</link>
      <description>&lt;p&gt;#timestamp(int) to NSDate&lt;/p&gt;

&lt;pre name=&quot;code&quot; class=&quot;brush:objc;&quot;&gt;  NSDate *timestampToNSDate = [NSDate dateWithTimeIntervalSince1970:timestamp];
&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;#NSDate to String&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;brush:objc;&quot;&gt;  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  [dateFormatter setDateFormat:@&quot;HH:mm&quot;];
  NSString *NSDateToNSString = [dateFormatter timetampToNSDate];
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;NSDate를 NSString 으로 바꿀때는 dataformat에 따라서 다양하게 바꿀 수 있습니다. 저같은 경우는 @&quot;HH:mm&quot;을 이용해서 &quot;13:50&quot; 과 같이 '시' '분' 만 나타냈지만 년 월 일 시 를 모두 나타낼 수도 있습니다.&lt;/p&gt;</description>
      <category>개발/iOS , Objective C</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/20</guid>
      <comments>https://metal00456.tistory.com/20#entry20comment</comments>
      <pubDate>Wed, 9 Nov 2016 18:06:00 +0900</pubDate>
    </item>
    <item>
      <title>[Android] / 안드로이드 / SoundPool 사용법 / How can Use SoundPool /</title>
      <link>https://metal00456.tistory.com/17</link>
      <description>&lt;p&gt;SoundPool 이란&amp;nbsp;Android 개발중 앱내에서 Sound를 재생해야 할 때 쓰이는 Class입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;#객체 생성&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;
private &lt;/span&gt;SoundPool &lt;span style=&quot;color:#9876aa;&quot;&gt;sound_pool&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;;

&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;span style=&quot;background-color:#40332b;&quot;&gt;
sound_pool&lt;/span&gt; = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;SoundPool(&lt;span style=&quot;color:#6897bb;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;AudioManager.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;STREAM_MUSIC&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;

&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;SoundPool의 파라메터를 보겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;공식 Document를 보면 다음과 같이 정의되어 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Monaco, Courier, monospace;&quot;&gt;SoundPool (int maxStreams,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Monaco, Courier, monospace;&quot;&gt;int streamType,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Monaco, Courier, monospace;&quot;&gt;int srcQuality)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- maxStreams에는 최대로 동시에 재생 가능한 음악파일&amp;nbsp;숫자를 넣습니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;- streamType는 재생 타입입니다. 보통은 AudioManager.STREAM_MUSIC을 씁니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;- srcQuality는 음악재생 품질을 나타냅니다. 0이 default입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;#파일 가져오기&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;sound_pool 객체를 생성했으니 재생할 파일을 Load합니다.&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;
int &lt;/span&gt;sound_beep_alert    = &lt;span style=&quot;color:#9876aa;&quot;&gt;sound_pool&lt;/span&gt;.load(&lt;span style=&quot;color:#cc7832;&quot;&gt;this, &lt;/span&gt;R.raw.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;alert_error&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;1&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;

&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;load() 함수를 이용해서 재생시킬 파일을 불러옵니다. (mp3, wav 확장자 둘다 가능합니다)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;#파일 재생&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;
sound_pool&lt;/span&gt;.play(&lt;span style=&quot;color:#9876aa;&quot;&gt;sound_beep_alert&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;1f&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;1f&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;1f&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;

&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;play()함수를 이용해서 파일을 재생시킵니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;play함수의 파라메터를 살펴보겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class=&quot;api-signature no-pretty-print&quot; style=&quot;margin-top: 1em; margin-bottom: 1em; color: rgba(0, 0, 0, 0.682353); font-stretch: normal; line-height: 18px; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Monaco, Courier, monospace; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; overflow: auto; border: 0px; background: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;int play (int soundID, 
                float leftVolume, 
                float rightVolume, 
                int priority, 
                int loop, 
                float rate)&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;- soundID : 재생시킬 파일의 resID&lt;/p&gt;&lt;p&gt;&amp;nbsp;- leftVolume : 왼쪽 볼륨 크기 (range : 0.0 ~ 1.0)&lt;/p&gt;&lt;p&gt;&amp;nbsp;- rightVolume : 오른쪽 볼륨 크리 (range : 0.0 ~ 1.0)&lt;/p&gt;&lt;p&gt;&amp;nbsp;- priority&amp;nbsp;: 우선순위 ( 0이 가장 낮음을 나타냅니다)&lt;/p&gt;&lt;p&gt;&amp;nbsp;- loop : 재생횟수입니다. (0일경우 1번만 재생 -1일 경우에는 무한반복)&lt;/p&gt;&lt;p&gt;&amp;nbsp;- rate : 재생속도입니다.0.5로 할 경우 2배 느리게 재생되고 2.0으로 할 경우 2배 빠르게 재생됩니다.&amp;nbsp;(range : 0.5 ~ 2.0)&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(65, 116, 217); font-size: 24pt;&quot;&gt;NOTE&lt;/span&gt; 재생이 제대로 되지 않을경우에는 Listener를 사용해야합니다.&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;span style=&quot;background-color:#344134;&quot;&gt;
sound_pool&lt;/span&gt;.setOnLoadCompleteListener (&lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;SoundPool.OnLoadCompleteListener() {&lt;br /&gt;   &lt;span style=&quot;color:#bbb529;&quot;&gt;@Override&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#bbb529;&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;public void &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;onLoadComplete&lt;/span&gt;(SoundPool soundPool&lt;span style=&quot;color:#cc7832;&quot;&gt;, int &lt;/span&gt;soundId&lt;span style=&quot;color:#cc7832;&quot;&gt;, int &lt;/span&gt;status) {&lt;br /&gt;      &lt;span style=&quot;background-color:#344134;&quot;&gt;sound_pool&lt;/span&gt;.play(&lt;span style=&quot;color:#9876aa;&quot;&gt;sound_beep_alert&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;1f&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;1f&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;1f&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;   &lt;/span&gt;}&lt;br /&gt;})&lt;span style=&quot;color:#cc7832;&quot;&gt;;

&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;파일을 정상적으로 load하지 못했는데 파일을 재생하려고 하는경우 Error가 발생하거나 소리가 정상적으로 출력되지 않습니다. 이럴 경우에는 위와 같이 Listener를 사용합니다. Listener는 soundPool이 파일 load를 끝낸직후 호출됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>개발/Android</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/17</guid>
      <comments>https://metal00456.tistory.com/17#entry17comment</comments>
      <pubDate>Wed, 9 Nov 2016 17:16:21 +0900</pubDate>
    </item>
    <item>
      <title>[Android] / 안드로이드 / OS version check / OS버전 체크 / OS별로 분기</title>
      <link>https://metal00456.tistory.com/16</link>
      <description>&lt;p&gt;Android 개발을 하다보면 서로 다른 OS버전에서 글씨 크기나 버튼, 기능들이 다르게 표현 될 수도 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;OS별로 기본 테마가 달라서 그런 것인데. 그럴때는 OS 버전별로 분기를 따로 태워야 하죠.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그 방법에 대해서 정리하겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 예제를 보면&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;if&lt;/span&gt;(Build.VERSION.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;SDK_INT &lt;/span&gt;&amp;gt; Build.VERSION_CODES.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;KITKAT&lt;/span&gt;){&lt;br /&gt;    builder.setSpan(&lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;AbsoluteSizeSpan(&lt;span style=&quot;color:#6897bb;&quot;&gt;50&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;fullString.length()&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;Spannable.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;SPAN_EXCLUSIVE_EXCLUSIVE&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;else&lt;/span&gt;{&lt;br /&gt;    builder.setSpan(&lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;AbsoluteSizeSpan(&lt;span style=&quot;color:#6897bb;&quot;&gt;25&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;fullString.length()&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;Spannable.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;SPAN_EXCLUSIVE_EXCLUSIVE&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;OS버전이 KITKAT이상이면 if문 안의 코드를 실행하고 아니면 else문의 코드를 실행 하도록 만들었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Build.VERSION.SDK_INT를 통해서 현재의 버전을 int 값으면 반환 받을 수 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Build.VERSION_CODES.KITKAT은 kitkat OS의 버전값을 int로 반환 받습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고 두 값을 비교해서 분기를 태우는 것입니다 :)&lt;/p&gt;</description>
      <category>개발/Android</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/16</guid>
      <comments>https://metal00456.tistory.com/16#entry16comment</comments>
      <pubDate>Thu, 27 Oct 2016 19:27:52 +0900</pubDate>
    </item>
    <item>
      <title>[Android] / 안드로이드 / textView 부분색상 바꾸기 / text color / 텍스트 부분색 바꾸기</title>
      <link>https://metal00456.tistory.com/15</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;하나의 텍스트뷰에 텍스트마다 다른 색상의 컬러를 주고 싶을때 사용하는 방법입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;SpannableStringBuilder&lt;/span&gt; Class를 이용하면 간단하게 작업 할 수 있습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;먼저 코드를 보겠습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;br /&gt;SpannableStringBuilder builder = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;SpannableStringBuilder(&lt;span style=&quot;color:#6a8759;&quot;&gt;&quot;String&quot;&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;builder.setSpan(&lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;ForegroundColorSpan(Color.&lt;span style=&quot;font-style:italic;&quot;&gt;parseColor&lt;/span&gt;(&lt;span style=&quot;color:#6a8759;&quot;&gt;&quot;#ff0000&quot;&lt;/span&gt;))&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;Spannable.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;SPAN_EXCLUSIVE_EXCLUSIVE&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;new_addr_textView.append(builder)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;SpannableStringBuilder 클래스의 객체를 생성 해주고 &lt;span style=&quot;color: rgb(9, 0, 255);&quot;&gt;setSpan&lt;/span&gt; 함수를 이용해서 텍스트 컬러를 바꿔주고 TextView 클래스의 &lt;span style=&quot;color: rgb(9, 0, 255);&quot;&gt;append&lt;/span&gt; 함수를 이용해서 적용 해주면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;setSpan 함수의 parameter를 살펴보면&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- setSpan(컬러 객체(Object)&amp;nbsp;, 컬러를 적용할 시작 인덱스(int) , 끝 인덱스(int)&amp;nbsp;, flag(int)&amp;nbsp;)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이런 식으로 되어있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위의 예제코드를 사용해서 텍스트를 만들면&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;S&lt;/span&gt;tring 이렇게 텍스트가 완성 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;*참고&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;private &lt;/span&gt;TextView &lt;span style=&quot;color:#ffc66d;&quot;&gt;setColorInPartitial&lt;/span&gt;(String pre_string&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;String string&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;String color&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;TextView textView){&lt;br /&gt;    SpannableStringBuilder builder = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;SpannableStringBuilder(pre_string + string)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;builder.setSpan(&lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;ForegroundColorSpan(Color.&lt;span style=&quot;font-style:italic;&quot;&gt;parseColor&lt;/span&gt;(color))&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#6897bb;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;pre_string.length()&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;Spannable.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;SPAN_EXCLUSIVE_EXCLUSIVE&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;textView.append(builder)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    return &lt;/span&gt;textView&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;저 같은 경우는 코드 재활용성을 위해서 위와 같이 함수로 만들어서 사용하고 있습니다. 참고하면 좋을 것 같습니다 :)&lt;/p&gt;</description>
      <category>개발/Android</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/15</guid>
      <comments>https://metal00456.tistory.com/15#entry15comment</comments>
      <pubDate>Wed, 19 Oct 2016 11:47:13 +0900</pubDate>
    </item>
    <item>
      <title>[Android] / 안드로이드 / HttpPost 한글 깨짐 현상</title>
      <link>https://metal00456.tistory.com/14</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;HttpPost를 이용해서 서버쪽으로 request를 날리면 한글이 (???) 이런 포멧으로 전달되는 현상을 발견했습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;확인을 해본 결과 request를 할때 Encoding 이 문제였음을 알 수 있었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;json형식으로 parameter를 만들어서 이렇게 request를 보내고 있었는데.&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color:#808080;&quot;&gt;//set json to StringEntity&lt;br /&gt;&lt;/span&gt;StringEntity se = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;StringEntity(json)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#808080;&quot;&gt;//set httpPost Entity&lt;br /&gt;&lt;/span&gt;post.setEntity(se)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래처럼 UTF-8인코딩 설정을 해주어 해결했습니다.&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color:#808080;&quot;&gt;//set json to StringEntity&lt;br /&gt;&lt;/span&gt;StringEntity se = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;StringEntity(json&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;HTTP.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;UTF_8&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#808080;&quot;&gt;//set httpPost Entity&lt;br /&gt;&lt;/span&gt;post.setEntity(se)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>개발/Android</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/14</guid>
      <comments>https://metal00456.tistory.com/14#entry14comment</comments>
      <pubDate>Wed, 12 Oct 2016 17:31:38 +0900</pubDate>
    </item>
    <item>
      <title>[Android] / 안드로이드 / text on drawable / text on bitmap / 이미지위에 텍스트 쓰기</title>
      <link>https://metal00456.tistory.com/13</link>
      <description>&lt;p&gt;안드로이드 작업을 하다보면 이미지위에 텍스트를 써야할때가 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저는 아래의 함수를 이용해서 그 부분을 처리하고 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 전체적인 코드입니다.&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;public &lt;/span&gt;Bitmap &lt;span style=&quot;color:#ffc66d;&quot;&gt;writeOnDrawable&lt;/span&gt;(&lt;span style=&quot;color:#cc7832;&quot;&gt;int &lt;/span&gt;drawableId&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;String text&lt;span style=&quot;color:#cc7832;&quot;&gt;, int &lt;/span&gt;TextSize){&lt;br /&gt;&lt;br /&gt;    Bitmap bm = BitmapFactory.&lt;span style=&quot;font-style:italic;&quot;&gt;decodeResource&lt;/span&gt;(getResources()&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;drawableId).copy(Bitmap.Config.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;ARGB_8888&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, true&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;BitmapFactory.&lt;span style=&quot;font-style:italic;&quot;&gt;decodeResource&lt;/span&gt;(getResources()&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;R.drawable.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;pin_l3x&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;Paint paint = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;Paint()&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;paint.setStyle(Paint.Style.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;FILL&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;paint.setColor(Color.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;BLACK&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;paint.setTextSize(TextSize)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;paint.setTextAlign(Paint.Align.&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CENTER&lt;/span&gt;)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;Canvas canvas = &lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;Canvas(bm)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    &lt;/span&gt;canvas.drawText(text&lt;span style=&quot;color:#cc7832;&quot;&gt;,&lt;/span&gt;bm.getWidth()/&lt;span style=&quot;color:#6897bb;&quot;&gt;2 &lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;bm.getHeight()/&lt;span style=&quot;color:#6897bb;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;paint)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;    return &lt;/span&gt;bm&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>개발/Android</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/13</guid>
      <comments>https://metal00456.tistory.com/13#entry13comment</comments>
      <pubDate>Fri, 7 Oct 2016 11:59:56 +0900</pubDate>
    </item>
    <item>
      <title>[Android] / [안드로이드] / googlemap / marker(마커) zIndex(z축) 설정하는 방법</title>
      <link>https://metal00456.tistory.com/12</link>
      <description>&lt;p&gt;Andorid googlemap v2관련 작업을 하다보면 마커의 zIndex를 바꿔주고 싶을때가 있습니다. 중요도가 큰 마커를 앞쪽으로 꺼내는것이죠&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;마커에 zIndex를 설정하는 방법에 관해서 알아보겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 자신의 gradle파일에서 &lt;b&gt;dependencies&lt;/b&gt;쪽을 봐주세요(eclipse 사용자의 경우에는 라이브러리 설정쪽을 보시면 됩니다.)&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;dependencies {&lt;br /&gt;    compile project(&lt;span style=&quot;color:#6a8759;&quot;&gt;':android'&lt;/span&gt;)&lt;br /&gt;    compile files(&lt;span style=&quot;color:#6a8759;&quot;&gt;'libs/bugsense-3.6.1.jar'&lt;/span&gt;)&lt;br /&gt;    compile files(&lt;span style=&quot;color:#6a8759;&quot;&gt;'libs/libDaumMapAndroid.jar'&lt;/span&gt;)&lt;br /&gt;    compile files(&lt;span style=&quot;color:#6a8759;&quot;&gt;'libs/nmaps.jar'&lt;/span&gt;)&lt;br /&gt;    compile &lt;span style=&quot;color:#6a8759;&quot;&gt;'com.android.support:appcompat-v7:23.3.0'&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;compile &lt;span style=&quot;color:#6a8759;&quot;&gt;'com.github.ParkSangGwon:TedPermission:v1.0.12'&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: rgb(241, 95, 95);&quot;&gt;&lt;b&gt;compile &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;&lt;span style=&quot;color: rgb(241, 95, 95);&quot;&gt;&lt;b&gt;'com.google.android.gms:play-services:9.6.1'&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;compile &lt;span style=&quot;color:#6a8759;&quot;&gt;'com.google.maps.android:android-maps-utils:0.4.4'&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;compile &lt;span style=&quot;color:#6a8759;&quot;&gt;'com.android.support:multidex:1.0.1'&lt;br /&gt;&lt;/span&gt;}&lt;/pre&gt;&lt;p&gt;위의 코드는 저의 &lt;b&gt;dependencies&lt;/b&gt; 섹션입니다. 주목하실 부분은 &lt;b&gt;&lt;span style=&quot;color: rgb(241, 95, 95);&quot;&gt;com.google.android.gms:play-services:9.6.1&lt;/span&gt;&lt;/b&gt; 부분입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;marker의 zIndex를 설정하려면 play-services 라이브러리 버전이&lt;span style=&quot;color: rgb(241, 95, 95);&quot;&gt; 9.2 이상&lt;/span&gt;이어야 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Google APIs release notes를 보면 9.2버전에서 MarkerOptions 클래스에 zIndex()라는 함수가 새롭게 추가된 것을 볼 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 820px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/231B573457EC7B3311&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F231B573457EC7B3311&quot; width=&quot;820&quot; height=&quot;316&quot; filename=&quot;스크린샷 2016-09-29 오전 11.15.29.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;자 이제 9.2v 이하의 라이브러리를 사용하고 계시는 분은 원래있던 코드를 지우고 9.2.0이상의 숫자를 넣어주시면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;넣어 주고 Gradle Sync를 맞춰주시면&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;Marker marker = &lt;span style=&quot;color:#9876aa;&quot;&gt;mMap&lt;/span&gt;.addMarker(&lt;span style=&quot;color:#cc7832;&quot;&gt;new &lt;/span&gt;MarkerOptions()&lt;br /&gt;        .position(locPoint)&lt;br /&gt;        .title(placeName)&lt;br /&gt;        .icon(BitmapDescriptorFactory.&lt;span style=&quot;font-style:italic;&quot;&gt;fromBitmap&lt;/span&gt;(markerIcon))&lt;br /&gt;        .alpha(markerAlpha)&lt;br /&gt;        .snippet(is_dst)&lt;br /&gt;        .zIndex(markerZindex))&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;dropMarker(marker)&lt;span style=&quot;color:#cc7832;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;저처럼 요렇게 &amp;nbsp;zIndex함수를 사용 할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 187, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;NOTE. zIndex 의 parameter는 &amp;nbsp;float형이고 숫자가 클수록 더 위쪽으로 마커가 올라오게 됩니다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>개발/Android</category>
      <category>Android</category>
      <category>Android Studio</category>
      <category>dependencies</category>
      <category>Google Map</category>
      <category>GOOGLE PLAY</category>
      <category>library</category>
      <category>Marker</category>
      <category>play service</category>
      <category>zindex</category>
      <author>스어비</author>
      <guid isPermaLink="true">https://metal00456.tistory.com/12</guid>
      <comments>https://metal00456.tistory.com/12#entry12comment</comments>
      <pubDate>Thu, 29 Sep 2016 11:29:33 +0900</pubDate>
    </item>
  </channel>
</rss>