반응형

OVERVIEW

We've done our best to cut through the legal jargon and explain in simple terms what information we collect, what we use it for, and the few situations in which we may share it with others. Please read this privacy policy carefully. It applies to all interactions you make with our games.

THE INFORMATION WE COLLECT

We receive some information automatically when you use our Apps. This includes data about your device, software, operating system, the language you've set for your Device, advertising IDs for advertisement tracking ("Advertising IDs") and your IP address.

In order to try to improve your experience with our games, occasionally we can collect information about how you interact with content and advertisements throughout the application.

We do not collect personally identifiable information about you or your children through our apps. In other words, we do not collect information such as your name, address, phone number or email address.

Occasionally we collect the personal information that you voluntarily provide to us (e.g. email addresses you give us when you submit a request to a support via our web or email).

CHILDREN'S PRIVACY

Our products respect the privacy of children. We don't collect personal Information from children with our mobile applications.
Our apps for children's do not show Interest-based Advertising.

Social media features and tools.

Our Games may include integrated social media features and tools, such as button "Share". Social media features and tools are hosted by a third-party, and your interactions with these integrated social media features and tools are governed by the privacy policy of the company providing it.

CHANGES TO THIS PRIVACY POLICY

We may amend this Privacy Policy from time to time. Use of information we collect is subject to the Privacy Policy in effect at the time such information is collected. As a result, we encourage you to review this privacy statement periodically to track changes.
CONTACT

We'd love to hear your questions, concerns and feedback about this privacy policy. If you have suggestions for us, let us know at: hjhyhwsw@gmail.com

반응형

WRITTEN BY
아카이시

,
반응형

안드로이드 스튜디오 사용시 Editor의 테마를 변경하고 싶을 때 유용한 사이트.


http://color-themes.com/?view=index




위 사이트에서 원하는 테마의 라이브러리 파일을 다운받아


File -> Import Setting -> 다운받은 Jar파일 선택 후


File -> Setting -> Editor -> Colors & Fonts ->Scheme 에서 다운받은 테마를 선택하면 끝~~


이상입니다.



반응형

WRITTEN BY
아카이시

,
반응형

dp px 변환 사이트, 누가 만들어 두었는지 아주 실용적이다.

이전에는 직접 계산기를 두드리며 노가다를 하였지만 이제는 필요없을듯...ㅋ

dp, px, sp, mm, in, pt 전부 변환가능..

모든해상도별로 아주 보기좋게 만들어 두었네요...ㅎㅎㅎ

http://pixplicity.com/dp-px-converter/

최고에요!!!

반응형

WRITTEN BY
아카이시

,
반응형

아래와같이 펑션을 만들어 사용하였다.

모양을 바꾸려면 이미지를 넣어 setBackgroundDrawable()을 사용하면될듯...

위치는 아래와 같이 setGravity를 이용하여 높낮이를 조절하면 된다.

public static void setCustomToast(Context context, String msg){

//백그라운드 변경
TextView view = new TextView(context);
view.setText(msg);
view.setBackgroundColor(context.getResources().getColor(android.R.color.white));

//위치변경
final Toast toast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.BOTTOM, 0, 300);
toast.show();
}
반응형

WRITTEN BY
아카이시

,
반응형

일단 아래의 BackPressCloseHandler 파일을 생성해둔다..

어느플젝에서도 사용가능하도록...

public class BackPressCloseHandler {
private long backKeyPressedTime = 0;
private Toast toast;

private Activity activity;

public BackPressCloseHandler(Activity context){
this.activity = context;
}

public void onBackPressed(){
if (System.currentTimeMillis() > backKeyPressedTime + 1500) {
backKeyPressedTime = System.currentTimeMillis();
showGuide();
return;
}else if (System.currentTimeMillis() <= backKeyPressedTime + 1500) {
activity.finish();
toast.cancel();
}

}
public void showGuide(){
toast = Toast.makeText(activity, "\'뒤로\'버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT);
toast.show();
}


}

그리고.. 원하는 액티비티에서.. 아래와 같이 호출하여 사용함.

private BackPressCloseHandler backPressCloseHandler;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
backPressCloseHandler = new BackPressCloseHandler(this);


}
    @Override
public void onBackPressed() {

backPressCloseHandler.onBackPressed();
}

 

반응형

WRITTEN BY
아카이시

,
반응형

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

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

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

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

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
아카이시

,
반응형

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

그중하나가 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
아카이시

,