반응형

굉장히 번거로운 작업이라 생각해서 기존 프로젝트는 이클립스에서..

새로운 프로젝트는 안드로이드 스튜디오에서 작업하고 있었다.

하지만 이렇게 간단할 줄이야...

혹시 아직 안해봤다면 지금 당장 해보세요~~~^^

1. 안드로이드 스튜디오를 설치. (android studio 1.2.2버젼 기준임)

2. "Welcome to Android Studio" 화면이 나옴.

3. 기존에 안드로이드 스튜디오로 프로젝트를 하고 있었다면... 'File' ->'Close Project'를 하면 "Welcome to Android Studio" 화면이 나옴.

4. "Quick Start"의 5번째줄 "Import project(Eclipe ADT, Gradle, etc)" 선택.

5. 기존 이클립스에서 사용하던 프로젝트 폴더를 선택후 "OK"버튼을 누른후 계속진행하면 끝~~~


정말 간단합니다.

반응형

WRITTEN BY
아카이시

,
반응형

요즘 머터리얼 디자인을 적용하여 프로젝트를 진행하고있다.

내부 프로젝트라 디자인을 별도로 요청하지 않고 머터리얼 디자인 가이드에 따라 만들고 있는중이다. 수많은 디바이스에 최적화된 어플을 만들려면 이미지를 적용하지 않는것이 가장 편하고 안정적이기 때문에 머터리얼 디자인을 흉내내는 수준? 으로 진행하기로 했다.

그래도 간단한 아이콘정도는 필요하였는데.. 다행히 구글에서 어느정도의 머터리얼 아이콘을 제공해주고 있다. 흰색과 검정색, 24DP~48DP, 안드로이드용, 아이폰용, 웹용등에 쉽게 적용하도록 정리가 잘되어있다.

https://www.google.com/design/icons/

 

 

반응형

WRITTEN BY
아카이시

,
반응형

A.Activity 안에 A.fragment가 하나있고 그 A.fragment에서 다른 B.fragment를 호출한다.

A.fragment는 자동으로 A.Activity의 테마가 적용되어져 있다.

하지만 B.fragment는 A.Activity의 테마가 적용되어지지 않고 있다.

 

따라서 fragment 안에서 별도로 테마를 적용해 주어야한다.

 

아래처럼 onCreateView내의 inflater를 사용하였더니 테마적용이 되질않는다... ㅜㅜ

 

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.AppTheme_Base);
LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);

View v = localInflater.inflate(R.layout.fragment_work_detail, container, false);


return v;
}

 
 

그래서 getActivity().getLayoutInflater()를 호출하여 사용하니 적용이 잘된다.

 

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.AppTheme_Base);
LayoutInflater localInflater = getActivity().getLayoutInflater().cloneInContext(contextThemeWrapper);

View v = localInflater.inflate(R.layout.fragment_work_detail, container, false);


return v;
}
반응형

WRITTEN BY
아카이시

,
반응형

이번에는 기본 폰트가 아닌 외부의 폰트를 사용해 보려한다.

이클립스에서는 간단히 assets폴더에 폰트 파일을 집어넣고 ..

((TextView) v).setTypeface(Typeface.createFromAsset(context.getAssets(),

"Roboto-Regular.ttf"));

와 같이 적어 주면 간단히 끝난다.

 

하지만... 안드로이드 스튜디오에 assets폴더가 없더라.... 헐..

 

검색해보니

 

 

위와 같이 Project-app-src-main 폴더에서 우클릭후 new-directory에서 "asset" 폴더를

만든 후 폰트파일들을 옮겨놓으면 끝...

 

 

 

또한 Util클래스에 아래의 메소드를 생성 후...

 

public static void setGlobalFont(Context context,View view){
if (view != null) {
if (view instanceof ViewGroup) {
ViewGroup vg = (ViewGroup) view;
int len = vg.getChildCount();
for (int i = 0; i < len; i++) {
View v = vg.getChildAt(i);
if (v instanceof TextView) {
((TextView) v).setTypeface(Typeface.createFromAsset(

context.getAssets(), "Roboto-Regular.ttf"));

}
setGlobalFont(context, v);
}
}
} else {
L.m("This is null);
}

}

 

Activity에서 아래와 같이 호출해주면 해당 Activity안의 모든 텍스트뷰에 해당 폰트가 적용된다.

 

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
initView(R.layout.activity_login);
Util.setGlobalFont(this, getWindow().getDecorView());

}

 

 

또한 listView 같이 아이템뷰들을 Inflate하는 경우는 다음과 같습니다.

 
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=inflater.inflate(R.layout.work_list_row, parent,false);
Util.setGlobalFont(context, view);
MyViewHolder holder=new MyViewHolder(view);
return holder;
}
 
 
 
 

 

 

 

 

 


반응형

WRITTEN BY
아카이시

,

종로 바른치킨

맛집 2015. 6. 9. 15:56
반응형

회사앞에 치킨집이 생김..
점심에는 돈까스를 판매...
인테리어가 깔끔해서 나름 괜찮았고,
돈까스도 안느끼하고 맛남..





저녁에 야근할때 치맥이나 하러와야지..
반응형

'맛집' 카테고리의 다른 글

홍대맛집 손가화덕  (0) 2015.07.21

WRITTEN BY
아카이시

,
반응형

이클립스에서 안드로이드 스튜디오로 이전한 이후로 할 일이 엄청많다.

그중하나가 SVN연동인데... 다시 초보로 돌아간 기분...

간단히 정리하면...

1. File -> Settings -> Version Control -> Subversion 으로 들어감.

2. Use command line client 의 체크박스 해제.

3. VCS -> Check from version Control -> Subversion

4. SVN이 설치되어 있는 서버의 URL을 입력 후 Check Out 버튼클릭.

5. VCS -> import into Version Control 클릭후 SVN에 올릴 소스폴더를 선택.

 

반응형

WRITTEN BY
아카이시

,
반응형

//날짜에 점을 넣어줌
public static String setDotDate(String day) {
int size = day.length();
StringBuffer sb = new StringBuffer(day);

String dot = ".";

if (size == 4) {
sb.insert(2, dot);
} else if (size == 6) {
sb.insert(4, dot);
} else if (size == 8) {
sb.insert(4, dot);
sb.insert(7, dot);
}
return sb.toString();
}

//시간에 ":"을 넣어줌

public static String setDotTime(String time) {
int size = time.length();
StringBuffer sb = new StringBuffer(time);

String dot = ":";

if (size == 4) {
sb.insert(2, dot);
} else if (size == 8) {
sb.insert(4, dot);
sb.insert(7, dot);
} else if (size == 6) {
sb.insert(2, dot);
sb.insert(5, dot);
}
return sb.toString();
}

//현재 날짜가저오기

public static String getCurrentDay() {
String day = "";
Calendar calendar = Calendar.getInstance();
int today = calendar.get(Calendar.DATE);

calendar.set(Calendar.DAY_OF_MONTH, 1);

int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;

day = addZero(year) + addZero(month) + addZero(today);

return day;
}

//년월

public static String getCurrentMonth() {
String day = "";
Calendar calendar = Calendar.getInstance();
int today = calendar.get(Calendar.DATE);

calendar.set(Calendar.DAY_OF_MONTH, 1);

int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;

day = addZero(year) + addZero(month);

return day;
}

//내일

public static String getTomorrow() {
String day = "";
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DATE, 1);

int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int today = cal.get(Calendar.DAY_OF_MONTH);

day = addZero(year) + addZero(month) + addZero(today);

return day;
}

//"0"이 없을때 붙여줌.

public static String addZero(int arg) {
String val = String.valueOf(arg);

if (arg < 10)
val = "0" + val;

return val;
}

//현재시간

public static String getCurrentTime() {
String strNow = "";
// 현재 시간을 msec으로 구한다.
long now = System.currentTimeMillis();
// 현재 시간을 저장 한다.
Date date = new Date(now);
// 시간 포맷으로 만든다.
SimpleDateFormat sdfNow = new SimpleDateFormat("yyMMddHHmmss");
strNow = sdfNow.format(date);

return strNow;
}

//요일

public static String getDayOfWeek() {

String dayOfWeek = "";

Calendar cal = Calendar.getInstance();
int day_of_week = cal.get(Calendar.DAY_OF_WEEK);

switch (day_of_week) {
case 1:
dayOfWeek = "";
break;
case 2:
dayOfWeek = "";
break;
case 3:
dayOfWeek = "";
break;
case 4:
dayOfWeek = "";
break;
case 5:
dayOfWeek = "";
break;
case 6:
dayOfWeek = "";
break;
case 7:
dayOfWeek = "";
break;
}

return dayOfWeek;
}

//현재시간

public static String getCurrentTimeHHMM() {
String strNow = "";
// 현재 시간을 msec으로 구한다.
long now = System.currentTimeMillis();
// 현재 시간을 저장 한다.
Date date = new Date(now);
// 시간 포맷으로 만든다.
SimpleDateFormat sdfNow = new SimpleDateFormat("HH:mm");
strNow = sdfNow.format(date);

return strNow;
}

//8자리 날짜를 넣으면 요일구함

public static String getDayOfWeek(String date) {

int year = 0;
int month = 0;
int day = 0;

if (date.length() > 7) {
year = Integer.parseInt(date.substring(0, 4));
month = Integer.parseInt(date.substring(4, 6));
day = Integer.parseInt(date.substring(6, 8));
}
String dayOfWeek = "";

Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.DATE, day);

int day_of_week = cal.get(Calendar.DAY_OF_WEEK);

switch (day_of_week) {
case 1:
dayOfWeek = "";
break;
case 2:
dayOfWeek = "";
break;
case 3:
dayOfWeek = "";
break;
case 4:
dayOfWeek = "";
break;
case 5:
dayOfWeek = "";
break;
case 6:
dayOfWeek = "";
break;
case 7:
dayOfWeek = "";
break;
}

return dayOfWeek;
}

//"년,월,일"을 붙여줌

public static String addDate(String day) {
int size = day.length();
StringBuffer sb = new StringBuffer(day);

if (size == 8) {
sb.insert(4, " ");
sb.insert(8, " ");
sb.insert(12, " ");
}
return sb.toString();
}

반응형

WRITTEN BY
아카이시

,
반응형
 
public static String setPhoneNumber(String result) {

boolean flag = false;

if (result.startsWith("0"))
flag = true;

DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setGroupingSeparator('-');

DecimalFormat df = new DecimalFormat("###,####,####");
df.setDecimalFormatSymbols(dfs);

try {
double inputNum = Double.parseDouble(result);
result = df.format(inputNum).toString();

if (flag) {
if (!result.equals("0"))
result = "0" + result;
}

} catch (NumberFormatException e) {
// TODO: handle exception
}

return result;
}
반응형

WRITTEN BY
아카이시

,
반응형
// 화폐단위 숫자 세자리마다 쉼표넣기
public static String currentpoint(String result) {

DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setGroupingSeparator(',');

DecimalFormat df = new DecimalFormat("###,###,###,###");
df.setDecimalFormatSymbols(dfs);

try {
double inputNum = Double.parseDouble(result);
result = df.format(inputNum).toString();
} catch (NumberFormatException e) {
// TODO: handle exception
}

return result;
}
반응형

WRITTEN BY
아카이시

,
반응형
public static void callAction(Context context, String num) {
try {
// 전화 걸기
Uri uri = Uri.parse("tel:" + num);
Intent it = new Intent(Intent.ACTION_CALL, uri);
context.startActivity(it);
} catch (ActivityNotFoundException e) {
Toast.makeText(context, "" + e.getMessage(), Toast.LENGTH_SHORT)
.show();
}
}

public static void smsAction(Context context, String num, String body) {
try {
// SMS 발송
Uri uri = Uri.parse("smsto:" + num);
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", body);
context.startActivity(it);
} catch (ActivityNotFoundException e) {
Toast.makeText(context, "" + e.getMessage(), Toast.LENGTH_SHORT)
.show();
}
}
반응형

WRITTEN BY
아카이시

,