Android strings.xml에 HTML 코드 넣기
의료기 개발을 하면서 측정 결과를 공유하기 위해
XML 형태로 전송하거나
HTML 형태로 전송하거나
혹은 PDF로 전송하는 등 다양한 형태의 파일로
공유하는 작업을 하는 중에
HTML형태의 파일로 저장하는 작업을 하면서 소스 코드 상에서 복잡한 HTML 코드를 집어 넣기에는 뭐시기해서 strings.xml을 이용하기 했다.
근데 문제는...
Android의 strings.xml에 HTML 코드를 그대로 넣으면 컴파일 단계에서 에러가 발생한다.
<string name="HtmlCSS">
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Meditab Results</title>
<style type="text/css">
body {
font-family: Arial, Verdana, sans-serif;
font-size: 90%;
color: #666;
background-color: #f8f8f8;}
table {
border-spacing: 0px; }
... 이하 생략 ...
이 문제를 해결할려면 다음과 같이 바꿔 주어야 된다.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...이하 생략...
보통 번거로운일이 아니다. ;;;
이런 문제를 한방에 해결할수 있는 방법이 있다. 다음과 같이
<![CDATA[
이 안에 HTML 코드를 있는 그대로 넣어주면 해결된다.
]]>
이때 string 항목에 속성을 하나 추가해 주어야 하는데 formatted="false"이다.
아래는 전체 예제이다.
<string name="HtmlCSS" formatted="false">
<![CDATA[
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Meditab Results</title>
<style type="text/css">
body {
font-family: Arial, Verdana, sans-serif;
font-size: 90%;
color: #666;
background-color: #f8f8f8;}
table {
border-spacing: 0px; }
th, td {
padding: 5px 30px 5px 10px;
border-spacing: 0px;
font-size: 90%;
margin: 0px;
}
th, td {
text-align: left;
background-color: #e0e9f0;
border-top: 1px solid #f1f8fe;
border-bottom: 1px solid #cbd2d8;
border-right: 1px solid #cbd2d8;}
tr.head th {
color: #fff;
background-color: #90b4d6;
border-bottom: 2px solid #547ca0;
border-right: 1px solid #749abe;
border-top: 1px solid #90b4d6;
text-align: center;
text-shadow: -1px -1px 1px #666666;
letter-spacing: 0.15em;}
td {
text-shadow: 1px 1px 1px #ffffff;
}
tr.even td, tr.even th {
background-color: #e8eff5;}
tr.head th:first-child {
-webkit-border-top-left-radius: 8px;
-moz-border-radius-topleft: 8px;
border-top-left-radius: 8px;}
tr.head th:last-child {
-webkit-border-top-right-radius: 8px;
-moz-border-radius-topright: 8px;
border-top-right-radius: 8px;}
fieldset {
width: 310px;
margin-top: 20px;
border: 1px solid #d6d6d6;
background-color: #ffffff;
line-height: 1.6em;}
legend {
font-style: italic;
color: #666666;}
.title {
float: left;
width: 160px;
clear: left;}
.submit {
width: 310px;
text-align: right;}
.results {
float: left;
}
</style>
</head>
<body>
<h1>Meditab Test Results</h1>
<h2> </h2>
<h2>개인정보 </h2>
<table>
<tr class="head">
<th>이름</th>
<th>측정일시</th>
<th>생년월일</th>
<th>성별</th>
<th>E-mail</th>
<th>진료담당</th>
</tr>
<tr>
<th>홍길동</th>
<td>2016. 3. 5</td>
<td>1978. 5. 17</td>
<td>남</td>
<td>aslsd@naver.com</td>
<td>Dr. Park</td>
</tr>
</table>
<p />
<h2> </h2>
<h2>측정결과</h2>
<div >
<table class="results">
<tr class="head">
<th>ECG(심전도)</th>
<th>측정결과</th>
</tr>
<tr>
<td>Heart Rate</td>
<td>84</td>
</tr>
<tr>
<td>Respiratory Rate</td>
<td>19</td>
</tr>
<tr>
<td>ST Level(mV)</td>
<td>18</td>
</tr>
<tr>
<td>Arrythmia</td>
<td>Normal</td>
</tr>
</table>
<p />
<table class="results differ" >
<tr class="head">
<th>NIBP(혈압)</th>
<th>측정결과</th>
</tr>
<tr>
<td>Systolic</td>
<td>120</td>
</tr>
<tr>
<td>Diastolic</td>
<td>84</td>
</tr>
<tr>
<td>Mean</td>
<td>96</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<p />
<table class="results"> <!-- SPO2 -->
<tr class="head">
<th>SPO2(혈중 산소포화도)</th>
<th>측정결과</th>
</tr>
<tr>
<td>Saturation Value</td>
<td>100</td>
</tr>
<tr>
<td>Pulse Rate</td>
<td>84</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<p />
<table class="results differ"> <!-- Temp -->
<tr class="head">
<th>Temp(체온)</th>
<th>측정결과</th>
</tr>
<tr>
<td>Temperature</td>
<td>36.3</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</div>
<p/>
</body>
</html>
]]>
</string>
'Android' 카테고리의 다른 글
adb를 이용해서 로그캣(logcat)을 파일로 저장하기 (0) | 2016.06.14 |
---|---|
안드로이드 시스템을 이용해서 블루투스(Bluetooth) 활성화 하기 (0) | 2016.04.21 |
안드로이드 Material design icon 다운로드 받기 (0) | 2016.01.18 |
Handler를 이용해서 특정 시간 후에 특정 작업을 실행시키기 (0) | 2015.12.28 |
현재의 디바이스가 BLE(Bluetooth Low Energy)를 지원하는지 확인하는 법 (0) | 2015.12.22 |