2013.04.25 23:57




살빼는법2 어플은 


다이어트 팁, 


유저들의 생생한 후기,


실시간 다이어트 뉴스,


미용 몸무게 까지 알려주는 비만도 측정 시스템,


10,000여 가지에 달하는 방대한 음식 DB,


칼로리 기록을 한눈에 알 수 있는


캘린더, 그래프, 일간, 월간, 상세 리포트를 지원합니다!!

또한 다이어터들의 공유의 장인 카톡과 비슷한 SNS 게시판 까지!


당신의 다이어트 성공을 위해 필요한 모든 것을 제공합니다!



이 어플을 무료로 


구글 마켓에서 '살빼는법2' 로 검색하여 다운받으실 수 있습니다!



올해 역시 당신의 훌륭한 다이어트 코치가 될 것을 약속드립니다!





신고
Posted by 그린블로그 DEV그린
2011.11.29 09:49

UIButton *btn;


btn.titleLabel.font = [UIFont boldSystemFontOfSize:12.0];

저작자 표시
신고
Posted by 그린블로그 DEV그린
2011.11.29 09:47

<TextView

  android:id="@+id/test"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:layout_centerHorizontal="true"

  android:text="가나다라마바사"

  android:textSize="12dip"

  android:textColor="@color/Black"

   android:gravity="center"

   android:singleLine="true"

   android:focasable="true"

   android:ellipsize="marquee"

 />


위의 bold로 되어있는 속성들이 중요합니다. 텍스트뷰에 저렇게 속성을 준 뒤 자바 소스 상에서 


textview.setSelected(true); 


이렇게 따로 속성을 줘야 합니다.

저작자 표시
신고
Posted by 그린블로그 DEV그린
2011.11.29 09:46

//종료날짜와 시작날짜의 차 구하기.

Calendar startDate = Calendar.getInstance();

Calendar endDate = Calendar.getInstance();

   

//년, 월, 일을 설정해준 후

startDate.set(Integer.parseInt("2011"), Integer.parseInt("11")-1, Integer.parseInt("1"));

endDate.set(Integer.parseInt("2011"), Integer.parseInt("11")-1, Integer.parseInt("10"));


//여기서 월에 -1을 해주는 이유는 0을 1월로 인식하기 때문입니다. 그러므로 11월은 10이 되어야 겠죠?

//사족 - 년월일을 스트링으로 준 이유는 실무에 들어가면 숫자를 직접 넣기 보다는 값을 받아오거나 DB에서 직접 가져오는데 String형이 자주 이용되기 때문입니다. 만약 정말 간단하게 넣으려면

startDate.set(2011, 10, 1); - 2011년 11월 1일

endDate.set(2011, 10, 10); - 2011년 11월 10일

이렇게 주면 되겠죠.


//시작날짜와 종료날짜 차 만큼 날짜 배경색상 변경할 칸수를 담아두는 변수를 선언하고.

long a = 0; 


//종료날짜와 시작날짜의 차를 구합니다.

//두날짜간의 차를 얻으려면 getTimeMills()를 이용하여 천분의 1초 단위로 변환하여야 합니다.

long b = (endDate.getTimeInMillis() - startDate.getTimeInMillis()) /1000; 

a = b/(60*60*24);


Log.i("INFO""종료날짜와 시작날짜의 차 : "+a);


결과는 10-1 해서 9가 나오겠네요. ^^
 

저작자 표시
신고
Posted by 그린블로그 DEV그린
2011.11.29 09:44

간혹 프로젝트 저장 시에 R파일이 사라지는 경우가 있습니다.


project - clean을 해도 안되는 경우가 있는데 원인에는 여러가지가 있습니다.


원인


1. xml 파일 생성 시 파일 이름에 소문자 알파벳, 언더바(_), 숫자 이외에 다른 것이 들어갔을 때.


2. 가져온 xml 파일의 경우 그 안의 리소스가 없을 때.

저작자 표시
신고
Posted by 그린블로그 DEV그린
2011.11.29 09:42

onActivityResult는,


정말 간단하게 설명하면 Activity A와 B가 있을 때,


A에서 B로 갔다가 다시 A로 넘어올 때 사용하는, 안드로이드에서 제공하는 기본 메소드입니다.


이 메소드의 대표적인 용도 중 하나는 커스텀 다이얼로그를 사용할 때 입니다.


커스텀 다이얼로그를 짤 때 가장 쉬운 방법으로 액티비티를 다이얼로그화하는 경우가 있습니다.


하지만 액티비티를 이동할 때


Intent intent = new Intent(this, B.class);

startActivity(intent);

finish();


혹은 


startActivity(new Intent(this, B.class));

finish();


이런식으로 넘기는 경우가 있는데 다이얼로그가 호출되면 배경화면으로 A 액티비티가 반투명하게 보여야 하지만


finish()를 해버렸기 떄문에 보이지 않습니다.


finish()를 하지 않더라도 위의 방식을 사용할 경우, A로 다시 값을 가져와야 하는 경우에는 intent.puExtra로 값을 넘겨야 하는데


그러면 다시 인텐트를 호출하게 되므로 B로 넘어가기 전의 A를 finish() 하지 않았기 때문에 결과적으로 A 액티비티가 


두번 호출되는 단점이 있습니다.


B 액티비티에서 A액티비티로 자연스럽게 값을 넘기면서 돌아오기 위해서는 일단 A 액티비티에서


Intent intent = new Intent(this, B.class);

            startActivityForResult(intent, 0);


이런식으로 B로 넘어가 A액티비티를 종료하지 않게 한 후


B에서 다시 A로 넘어 올 때 


setResult(resultCode);

finish();


단 두줄로 종료해 주거나 A로 값을 넘겨준다면


Intent intent = new Intent();

intent.putExtra("key", value);

setResult(RESULT_CODE, intent);

finish();


이렇게 넘겨줍니다.


이 때 B에서 setResult의 괄호안에 있는 resultCode에 정수형 변수를 넣어주어(예를 들면 0,1,2...) A로 넘기게 되는 것입니다.


다시 A 액티비티로 돌아왔을 때 A 액티비티에 선언된 onActivityResult는 B의 setResult의 resultCode 신호를 감지하여


작업을 행하게 되는데 두줄로 끝냈을 경우 이 부분의 소스는 이렇습니다. 


protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

switch (resultCode) {

   case 1:

////////////////////////////

//B의 신호를 받아 실행할 작업

////////////////////////////

   break;


default:

   break;

}

}


만약 B에서 


setResult(1);

finish();


와 같은 결과로 액티비티를 종료했다면 A에서는 setResult의 resultCode인 정수 1을 인지하여 


onActivityResult의 case 1에 해당되는 부분을 실행하게 됩니다.



그리고 B에서 A로 값을 넘긴 경우라면 


protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

switch (resultCode) {

   case 1:

String key = data.getStringExtra("key");

////////////////////////////

//B의 신호를 받아 실행할 작업

////////////////////////////

   break;


default:

   break;

}

}


위에서 강조표시를 한 것 처럼 key값을 받아와서 그 키값으로 다음 작업을 하는 것입니다.
 

저작자 표시
신고
Posted by 그린블로그 DEV그린
2011.09.30 14:22

(다운로드 QR코드 입니다. 바코드 어플로 찍으시면 다운로드 페이지로 이동합니다.)

 
*소개

 구글의 안드로이가 친구처럼 다이어트에 대한 상담을 해줍니다.
다이어트 외의 주제에도 반응하며 안드로이가 모르는 단어들은 직접 가르칠 수도 있습니다.

1. 대화하기 
- 안드로이와 대화합니다. 다이어트에 대한 주제라면 잘 답변해줍니다.

2. 가르치기
- 안드로이가 모르는 단어를 가르칩니다. 표정까지 선택해줄 수 있습니다.

3. 기억정보
- 안드로이에게 가르친 단어들을 살펴 볼 수 있는 메뉴입니다.

4. 유틸리티
- 살빼는법, 비만도측정등의 메뉴를 이용할 수 있습니다.

5. 정보공유방
- 사람들끼리 다이어트에 대한 정보를 공유할 수 있는 곳입니다.

6. 수다방
- 정보공유방과 같지만 용도는 다이어트 외 친목을 다질 수 있는 곳입니다.

 


저작자 표시
신고
Posted by 그린블로그 DEV그린
2011.09.29 13:00

1. 일단 res 폴더안에 raw 폴더를 만들고 될 수 있으면 ogg 파일로 넣는다. (mp3 파일보다 에러가 적다)

 

2. MusicService 클래스를 만든다. (배경음악을 틀어주는 Class)

 

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;

 

public class MusicService extends Service {
 
 public MediaPlayer mp;

 

 public IBinder onBind(Intent arg0) {

  return null;
 }

 

 public void onStart(Intent intent, int startId) {
  Log.i("Example", "Service onStart()"); 

  super.onStart(intent, startId);
  mp = MediaPlayer.create(this, R.raw.ashi);
  mp.setLooping(true); // 반복 재생 설정 (true와 false로 조정 가능)
  mp.start(); //음악 재생


 }

 public void onDestroy() {
  Log.i("Example", "Service onDestroy()");
  super.onDestroy();
  mp.stop(); //음악 정지
 }
}

 

3. AndroidManifest.xml에 다음과 같이 설정한다.

 

<service android:name=".MusicService">
      <intent-filter>
       <action android:name="com.Example.service.test/>
       <category android:name="android.intent.category.DEFAULT"/>
      </intent-filter>
  </service>

 

4. 음악을 틀어줄 Activity에 startService와 stopService로 배경음악을 제어한다.

 

public class Example extends Activity

 

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        startService(new Intent("com.Example.service.test")); //Activity 시작과 함께 배경음악을 재생한다.

.

.

.

 

// Back키를 누르면 종료되는 Method
//AndroidManifest.xml에 <uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission> 설정 할 것.

public boolean onKeyDown(int keyCode, KeyEvent event){

        switch (keyCode){
        case KeyEvent.KEYCODE_BACK:
         exit();
        }
          return super.onKeyDown(keyCode, event);    

 }   

        public void exit(){
            ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
            am.restartPackage(getPackageName());
           
 stopService(new Intent("com.Example.service.test")); //종료되면 배경음악이 꺼진다.

    }

신고
Posted by 그린블로그 DEV그린
2011.09.29 12:33

연산자

구분연산자사용예설명
산술연산자 + a + b 덧셈
- a - b 뺄셈
* a * b 곱셈
/ a / b 나눗셈
% a % b 나머지
++ ++a 연산전에 변수값 1증가
a++ 연산후에 변수값 1증가
-- --a 연산전에 변수값 1감소
a-- 연산후에 변수값 1감소
관계연산자 > a > b a 가 b 보다 크면 true
>= a >= b a 가 b 보다 크거나 같으면 true
< a < b a 가 b 보다 작으면 true
<= a <= b a 가 b 보다 작거나 같으면 true
== a == b a 가 b 와 같으면 true
!= a != b a 가 b 와 같지 않으면 true
논리연산자 && a && b a, b 모두 true 이면 true
|| a || b a,b 둘 중 하나라도 true 이면 true
! !a a 가 true 이면 false, false 이면 true
대입연산자 = a = 9; 변수 a 에 값 9 를 할당
+= a += b; a = a + b;
-= a -= b; a = a - b;
*= a *= b; a = a * b;
/= a /= b; a = a / b;
%= a %= b; a = a % b;
조건연산자 max = a > b ? a : b; a 가 b 보다 크면 a의 값을 max 에 할당
a 가 b 보다 크지 않다면 b의 값을 max 에 할당


신고
Posted by 그린블로그 DEV그린