2017103976

android code

Showing 110 changed files with 1217 additions and 0 deletions
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_clothes"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_clothes_round"
android:supportsRtl="true"
android:theme="@style/Theme.Test"
android:usesCleartextTraffic="true">
<activity android:name=".ClothesActivity"></activity>
<activity android:name=".WeatherActivity" />
<activity android:name=".MainActivity"/>
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
\ No newline at end of file
package com.example.test;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class CheckListAdapter extends BaseAdapter {
// Adapter에 추가된 데이터를 저장하기 위한 ArrayList
private ArrayList<CheckListItem> CheckListItemList = new ArrayList<CheckListItem>();
// ListViewAdapter의 생성자
public CheckListAdapter() {
}
// Adapter에 사용되는 데이터의 개수를 리턴.
@Override
public int getCount() {
return CheckListItemList.size();
}
// position에 위치한 데이터를 화면에 출력하는데 사용될 View를 리턴.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();
// "listview_check" Layout을 inflate하여 convertView 참조 획득.
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.listview_check, parent, false);
}
// 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
ImageView icon = (ImageView) convertView.findViewById(R.id.check_icon);
TextView checklist = (TextView) convertView.findViewById(R.id.input_checklist);
// Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
CheckListItem checklistItem = CheckListItemList.get(position);
// 아이템 내 각 위젯에 데이터 반영
icon.setImageDrawable(checklistItem.getIcon());
checklist.setText(checklistItem.getCheckList());
return convertView;
}
// 지정한 위치(position)에 있는 데이터와 관계된 아이템(row)의 ID를 리턴.
@Override
public long getItemId(int position) {
return position;
}
// 지정한 위치(position)에 있는 데이터 리턴
@Override
public Object getItem(int position) {
return CheckListItemList.get(position) ;
}
// 아이템 데이터 추가를 위한 함수
public void addItem(Drawable icon, String temp) {
CheckListItem item = new CheckListItem();
item.setIcon(icon);
item.setCheckList(temp);
CheckListItemList.add(item);
}
}
\ No newline at end of file
package com.example.test;
import android.graphics.drawable.Drawable;
public class CheckListItem {
private Drawable check;
private String list;
public void setIcon(Drawable icon) {
check = icon ;
}
public void setCheckList(String checklist) {
list = checklist ;
}
public Drawable getIcon() {
return this.check ;
}
public String getCheckList() {
return this.list ;
}
}
package com.example.test;
import android.os.StrictMode;
import java.util.ArrayList;
public class ClothesRecommend extends Thread {
ClothesActivity cContext;
WeatherActivity wContext;
WeatherForCast mWeather;
public ClothesRecommend(ClothesActivity mContext) {
this.cContext = cContext;
}
public int Cal_Perceived(String Temper, String Velo) {
int perceived;
double temper = Double.parseDouble(Temper);
double velo = Double.parseDouble(Velo);
perceived = (int) (13.12 + 0.6215 * temper - 11.37 * Math.pow(velo, 0.16) + 0.3965 * Math.pow(velo, 0.16) * temper);
return perceived;
}
// 체감온도에 따른 옷추천 (Recommend는 [체감온도, 성별]으로 이루어진 배열)
public ArrayList<ArrayList<String>> Recommend(ArrayList<Integer> Recommend){
int perceived = Recommend.get(0);
int gender = Recommend.get(1);
ArrayList<String> code = new ArrayList<String>();
ArrayList<String> top = new ArrayList<String>();
ArrayList<String> bottom = new ArrayList<String>();
ArrayList<ArrayList<String>> clothes = new ArrayList<ArrayList<String>>();
if (perceived >= 28){
top.add("민소매");
top.add("반팔");
bottom.add("반바지");
if (gender == 1){
bottom.add("치마");
top.add("원피스");
code.add("11");
} else { code.add("10"); }
} else if (perceived >= 23) {
top.add("반팔");
top.add("얇은 셔츠");
top.add("긴팔");
bottom.add("반바지");
bottom.add("면바지");
if (gender == 1){
bottom.add("치마");
code.add("21");
} else { code.add("20"); }
} else if (perceived >= 20) {
top.add("긴팔");
top.add("가디건");
bottom.add("면바지");
bottom.add("슬랙스");
bottom.add("스키니");
code.add("30");
} else if (perceived >= 17) {
top.add("가디건");
top.add("후드티");
top.add("맨투맨");
bottom.add("청바지");
bottom.add("면바지");
code.add("40");
} else if (perceived >= 12) {
top.add("후드티");
top.add("셔츠");
top.add("가디건");
bottom.add("긴바지");
bottom.add("청바지");
if (gender == 1){
bottom.add("살색스타킹");
code.add("51");
} else { code.add("50"); }
} else if (perceived >= 10) {
top.add("자켓");
top.add("니트");
top.add("트렌치코트");
bottom.add("긴바지");
if (gender == 1){
bottom.add("검정스타킹");
code.add("61");
} else { code.add("60"); }
} else if (perceived >= 4) {
top.add("코트");
top.add("자켓");
top.add("히트텍");
bottom.add("긴바지");
if (gender == 1){
bottom.add("레깅스");
code.add("71");
} else { code.add("70"); }
} else {
top.add("패딩");
top.add("두꺼운 코트");
bottom.add("긴바지");
if (gender == 1) {
bottom.add("레깅스");
code.add("81");
} else { code.add("80"); }
}
clothes.add(code);
clothes.add(top);
clothes.add(bottom);
// Return [[이미지 코드], [상의], [하의]]
return clothes;
}
public ArrayList<ArrayList<String>> AccessWeather(String code){
ArrayList<ArrayList<String>> gData = new ArrayList<ArrayList<String>>();
mWeather = new WeatherForCast(code, (WeatherActivity) wContext);
gData = mWeather.GetOpenWeather(code);
return gData;
}
@Override
public void run() {
super.run();
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
}
}
This diff is collapsed. Click to expand it.
package com.example.test;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class ListViewAdapter extends BaseAdapter {
// Adapter에 추가된 데이터를 저장하기 위한 ArrayList
private ArrayList<ListViewItem> listViewItemList = new ArrayList<ListViewItem>();
// ListViewAdapter의 생성자
public ListViewAdapter() {
}
// Adapter에 사용되는 데이터의 개수를 리턴.
@Override
public int getCount() {
return listViewItemList.size();
}
// position에 위치한 데이터를 화면에 출력하는데 사용될 View를 리턴.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();
// "listview_item" Layout을 inflate하여 convertView 참조 획득.
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.listview_item, parent, false);
}
// 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
TextView time = (TextView) convertView.findViewById(R.id.input_time);
ImageView weather = (ImageView) convertView.findViewById(R.id.input_weather);
TextView temperature = (TextView) convertView.findViewById(R.id.input_temperature);
TextView wind = (TextView) convertView.findViewById(R.id.input_wind);
TextView pop = (TextView) convertView.findViewById(R.id.input_precipitation);
// Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
ListViewItem listViewItem = listViewItemList.get(position);
// 아이템 내 각 위젯에 데이터 반영
time.setText(listViewItem.getTime());
weather.setImageDrawable(listViewItem.getWeather());
temperature.setText(listViewItem.getTemperature());
wind.setText(listViewItem.getWind());
pop.setText(listViewItem.getPrecipitation());
return convertView;
}
// 지정한 위치(position)에 있는 데이터와 관계된 아이템(row)의 ID를 리턴.
@Override
public long getItemId(int position) {
return position;
}
// 지정한 위치(position)에 있는 데이터 리턴
@Override
public Object getItem(int position) {
return listViewItemList.get(position) ;
}
// 아이템 데이터 추가를 위한 함수
public void addItem(String time, Drawable weather, String temp, String wind, String pop) {
ListViewItem item = new ListViewItem();
item.setTime(time);
item.setWeather(weather);
item.setTemperature(temp);
item.setWind(wind);
item.setPrecipitation(pop);
listViewItemList.add(item);
}
}
\ No newline at end of file
package com.example.test;
import android.graphics.drawable.Drawable;
public class ListViewItem {
private Drawable weather;
private String time;
private String temperature;
private String wind;
private String precipitation;
public void setWeather(Drawable icon) {
weather = icon ;
}
public void setTime(String mtime) {
time = mtime ;
}
public void setTemperature(String temp) {
temperature = temp ;
}
public void setWind(String mwind) {
wind = mwind ;
}
public void setPrecipitation(String prec) {
precipitation = prec ;
}
public Drawable getWeather() {
return this.weather ;
}
public String getTime() {
return this.time ;
}
public String getTemperature() {
return this.temperature ;
}
public String getWind() {
return this.wind;
}
public String getPrecipitation() {
return this.precipitation;
}
}
This diff is collapsed. Click to expand it.
package com.example.test;
import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;
import java.io.InputStream;
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
try {
Thread.sleep(3000); //대기 초 설정
startActivity(new Intent(SplashActivity.this, MainActivity.class));
finish();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.example.test;
import android.os.StrictMode;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Calendar;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
public class WeatherForCast extends Thread {
String code;
//MainActivity mContext;
WeatherActivity wContext;
String mWeather;
ArrayList<ArrayList<String>> gWeather;
public String getWeather()
{
return mWeather;
}
public WeatherForCast(String code, WeatherActivity wContext)
{
this.code = code;
this.wContext = wContext;
}
// tag값의 정보를 가져오는 메소드
private static String getTagValue(String tag, Element eElement) {
NodeList nlList = eElement.getElementsByTagName(tag).item(0).getChildNodes();
Node nValue = (Node) nlList.item(0);
if(nValue == null)
return null;
return nValue.getNodeValue();
}
public ArrayList<ArrayList<String>> GetOpenWeather(String code)
{
ArrayList<ArrayList<String>> wData = new ArrayList<ArrayList<String>>();
try{
String url = "http://www.kma.go.kr/wid/queryDFSRSS.jsp?zone="+ code;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(url);
// root tag
doc.getDocumentElement().normalize();
NodeList nlDate = doc.getElementsByTagName("header");
Node ndate = nlDate.item(0);
Element eDate = (Element) ndate;
String date = getTagValue("tm", eDate);
int thour = Integer.parseInt(date.substring(8,10));
date = date.substring(4,8);
if (thour >= 21) {
date = String.format("%4s",String.valueOf(Integer.parseInt(date) + 1)).replace(" ", "0");
}
// 파싱할 tag
NodeList nList = doc.getElementsByTagName("data");
for(int temp = 0; temp < nList.getLength(); temp++){
Node nNode = nList.item(temp);
ArrayList<String> tData = new ArrayList<String>();
if(nNode.getNodeType() == Node.ELEMENT_NODE){
Element eElement = (Element) nNode;
String hour = getTagValue("hour",eElement);
hour = String.format("%2s",hour).replace(" ","0");
tData.add(date + hour); // 0.시간
if (getTagValue("hour",eElement).equals("24")){
int tmp;
tmp = Integer.parseInt(date);
tmp += 1;
date = String.format("%4s",String.valueOf(tmp)).replace(" ", "0");
}
tData.add(IntCast(getTagValue("temp", eElement))); // 1.온도
tData.add(GetTemperature(IntCast(getTagValue("tmx", eElement)))); // 2.최고 온도
tData.add(GetTemperature(IntCast(getTagValue("tmn", eElement)))); // 3.최저 온도
tData.add(IntCast(getTagValue("ws", eElement))); // 4.풍속
tData.add(getTagValue("wfEn", eElement)); // 5.하늘상태
tData.add(getTagValue("pop", eElement)); // 6.강수확률
} // for end
wData.add(tData);
} // if end
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
return wData;
}
public String IntCast(String tmp){
double temp = Double.parseDouble(tmp);
int result = (int) temp;
return String.valueOf(result);
}
// 체감온도에 필요한 값만 Return
public ArrayList<ArrayList<String>> GetPerceived(String code)
{
ArrayList<ArrayList<String>> gData = new ArrayList<ArrayList<String>>();
try{
String url = "http://www.kma.go.kr/wid/queryDFSRSS.jsp?zone="+ code;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(url);
// root tag
doc.getDocumentElement().normalize();
NodeList nlDate = doc.getElementsByTagName("header");
Node ndate = nlDate.item(0);
Element eDate = (Element) ndate;
String date = getTagValue("tm", eDate);
date = date.substring(4,8);
// 파싱할 tag
NodeList nList = doc.getElementsByTagName("data");
for(int temp = 0; temp < nList.getLength(); temp++){
Node nNode = nList.item(temp);
ArrayList<String> data = new ArrayList<String>();
if(nNode.getNodeType() == Node.ELEMENT_NODE){
Element eElement = (Element) nNode;
String hour = getTagValue("hour",eElement);
hour = String.format("%2s",hour).replace(" ","0");
data.add(date + hour);
if (getTagValue("hour",eElement).equals("24")){
int tmp;
tmp = Integer.parseInt(date);
tmp += 1;
date = String.format("%4s",String.valueOf(tmp)).replace(" ", "0");
}
data.add(getTagValue("temp",eElement));
data.add(getTagValue("ws",eElement));
} // for end
gData.add(data);
} // if end
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
return gData;
}
public String GetTemperature(String temp)
{
if (temp.equals("999"))
return "정보 없음";
else if (temp.equals("-999"))
return "정보 없음";
return temp;
}
public String GetPerceived(String temp, String velo){
int perceived;
double temper = Double.parseDouble(temp);
double veloc = Double.parseDouble(velo);
perceived = (int) (13.12 + 0.6215 * temper - 11.37 * Math.pow(veloc, 0.16) + 0.3965 * Math.pow(veloc, 0.16) * temper);
return String.valueOf(perceived);
}
@Override
public void run() {
super.run();
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
}
}
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape android:shape="rectangle" >
<stroke
android:width="2dp"
android:color="#000000" />
<solid android:color="#FFF" />
</shape>
</item>
</layer-list>
\ No newline at end of file
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
This diff is collapsed. Click to expand it.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/angel"
android:layout_centerHorizontal="true" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"></FrameLayout>
<TextView
android:id="@+id/select_city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="7pt"
android:text="1. 도시를 입력해주세요."
android:layout_margin = "10dp"
android:fontFamily="@font/scdream5"
android:textColor="#000000"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:weightSum="3"
android:layout_margin = "10dp">
<Spinner
android:id="@+id/TopList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Spinner
android:id="@+id/MdlList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Spinner
android:id="@+id/LeafList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
<TextView
android:id="@+id/select_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/scdream5"
android:text="2. 날짜 및 시간을 입력해주세요."
android:textSize="7pt"
android:layout_margin = "10dp"
android:textColor="#000000"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:weightSum="1"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp">
<Spinner
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/start_month"
android:layout_weight="0.33"
android:fontFamily="@font/scdream3"
android:textSize="6pt" />
<Spinner
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/start_day"
android:layout_weight="0.33"
android:fontFamily="@font/scdream3"
android:textSize="6pt" />
<Spinner
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/start_hour"
android:layout_weight="0.33"
android:fontFamily="@font/scdream3"
android:textSize="6pt" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:weightSum="1"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp">
<Spinner
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/from_month"
android:layout_weight="0.33"
android:fontFamily="@font/scdream3"
/>
<Spinner
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/from_day"
android:layout_weight="0.33"
android:fontFamily="@font/scdream3"
/>
<Spinner
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/from_hour"
android:layout_weight="0.33"
android:fontFamily="@font/scdream3"
/>
</LinearLayout>
<TextView
android:id="@+id/select_gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="7pt"
android:text="3. 성별을 입력해주세요."
android:fontFamily="@font/scdream5"
android:textColor="#000000"
android:layout_margin = "10dp"/>
<RadioGroup
android:id="@+id/radioGender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin = "10dp">
<RadioButton
android:id="@+id/select_woman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:layout_weight="1"
android:text="여자"
android:fontFamily="@font/scdream3"
android:textSize="6pt"/>
<RadioButton
android:id="@+id/select_man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="남자"
android:fontFamily="@font/scdream3"
android:textSize="6pt" />
</RadioGroup>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:weightSum="2">
<Button
android:id="@+id/btn_weather"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/scdream5"
android:layout_margin = "10dp"
android:text="날씨 알아보기" />
<Button
android:id="@+id/btn_clothes"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/scdream5"
android:layout_margin = "10dp"
android:text="옷 추천받기" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/splash"
tools:context=".SplashActivity">
<ImageView
android:id="@+id/splash"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/main"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.532" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
This diff is collapsed. Click to expand it.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="5"
android:layout_marginRight="25dp"
android:layout_marginLeft="25dp">
<ImageView
android:layout_width="80px"
android:layout_height="80px"
android:id="@+id/check_icon"
android:gravity="center_horizontal"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="체크리스트"
android:id="@+id/input_checklist"
android:textColor="#000000"
android:gravity="center_vertical"
android:layout_marginLeft="5dp"
android:fontFamily="@font/scdream4"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="5">
<TextView
android:layout_width="100px"
android:layout_height="match_parent"
android:text="시간"
android:id="@+id/input_time"
android:textColor="#000000"
android:gravity="center"
android:fontFamily="@font/scdream3"
android:layout_weight="1" />
<ImageView
android:layout_width="100px"
android:layout_height="110px"
android:id="@+id/input_weather"
android:layout_weight="0.8"
android:gravity="center_horizontal"/>
<TextView
android:layout_width="100px"
android:layout_height="match_parent"
android:text="기온"
android:id="@+id/input_temperature"
android:textColor="#000000"
android:gravity="center"
android:fontFamily="@font/scdream3"
android:layout_weight="1" />
<TextView
android:layout_width="100px"
android:layout_height="match_parent"
android:text="풍속"
android:id="@+id/input_wind"
android:textColor="#000000"
android:gravity="center"
android:fontFamily="@font/scdream3"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="강수확률"
android:id="@+id/input_precipitation"
android:textColor="#000000"
android:gravity="center"
android:fontFamily="@font/scdream3"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_clothes_background"/>
<foreground android:drawable="@mipmap/ic_clothes_foreground"/>
</adaptive-icon>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_clothes_background"/>
<foreground android:drawable="@mipmap/ic_clothes_foreground"/>
</adaptive-icon>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
\ No newline at end of file
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.